史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   一般電腦疑難討論區 (http://forum.slime.com.tw/f17.html)
-   -   請問 C++ 的期末考試 (http://forum.slime.com.tw/thread150407.html)

dscos2 2005-05-28 11:48 AM

請問 C++ 的期末考試
 
因為我才剛學C++,很多地方不懂請高手指點~~

如果我想把一篇文字檔,讀入C++中,而且可以指定文字存取
只要DOS那種程式碼就可以了(WIN32)
該怎麼做呢? 我在網路上幾乎找不到任何資料

比如說,我讀入一個文字檔,內容是

123456
789888

接下來我想運用此文字檔內的資料做運算

比如說

把第一行所有的數字相加
乘上第二行的第 3 個數字

該怎麼做呢? 非常謝謝

另外可否從<includ iostream>完整的給我程式碼
因為我怕自己想會有錯誤
事關期末考~非常謝謝

juju73729 2005-05-28 05:21 PM

可以給你一些建議....抱歉小弟下禮拜也要考試...沒控幫你寫(我也不是很強說)

------------------------
你可以使用get指令.....一次讀取一ㄍ字元....寫入一ㄍ緩衝區中( 例如一ㄍ陣列 )

這樣就可以任意ㄉ運算了

-------------------------

如有說錯或有更好ㄉ方式.....請指教

mini 2005-05-28 11:19 PM

以下有個地方錯誤
也就是 ch[0] = b2[atol(temp)];
您可以改改看
(程式寫的不太好,因為個人都是玩 VB,c++很久才碰一次 ^^||)

#include <iostream>
#include <fstream>
using namespace std;

ifstream infile; //宣告一個file物件

void read_line(char string[]) {
int i=0;

do {
string[i] = (char)infile.get();
i++;
} while ((string[i-1] != '\n') && infile.good());
string[i-1] = '\0';
}

//接著是 main主體
int main () {
char b1[255];//*b1; //宣告b1字串
char b2[255];//*b2; //宣告b2字串
char ch[]={'0','\0'}, temp[255];
int i;

//開啟 test.txt 檔案 : void open ( const char * filename, openmode mode = in );
infile.open("test.txt");
//讀第一行到字串b1中
read_line(b1);

//讀第二行到字串b2中
read_line(b2);

//輸入取第幾個字元當乘數
printf("請從[ %s ]選第n個數當乘數:",b2);
scanf("%s", temp);
ch[0] = b2[atol(temp)];
//輸出結果
printf("%s * %l = %l \n", b1, atol(ch), atol(b1)*atol(ch));

infile.close(); //關閉檔案
system("PAUSE");
return 0; //main 是一個函式要傳出一個值
}

mini 2005-05-29 10:56 AM

還是公布答案好了
...
//輸入取第幾個字元當乘數
printf("被乘數是[ %s ],請從[ %s ]選第n個數當乘數:", b1, b2);
scanf("%s", temp);
ch[0] = b2[atol(temp)-1]; //因為陣列是從 b2[0] 開始算
//輸出結果
printf("%s * %s = %ld \n", b1, ch, atol(b1)*atol(ch));
...

缺點


所有時間均為台北時間。現在的時間是 02:44 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1