[問題] 關於讀檔讀超過一行

看板C_and_CPP (C/C++)作者 (自我催眠)時間14年前 (2011/10/18 14:30), 編輯推噓0(008)
留言8則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev c++ 問題(Question): 請問各位前輩,我的程式是從外部來讀一個文字檔,文字檔範例如下 asdasdasd 現在假如讀進來的文字檔超過一行的話,要怎麼處理呢? 比如說 asdasdasd asdsadasd asdasdasd 程式碼(Code):(請善用置底文網頁, 記得排版) char a[100]; FILE *in = fopen("input.txt","r"); fscanf(in,"%s",a); fclose(in); 這是我的程式碼 請問要怎麼改呢? 還是說可以用while去判斷? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.236.246 ※ 編輯: zheng2010 來自: 114.33.236.246 (10/18 14:31)

10/18 14:31, , 1F
寫個while迴圈把fscanf包起來,feof()可判斷檔案是否讀完
10/18 14:31, 1F

10/18 14:41, , 2F
可是這樣子a的值會改變吧?
10/18 14:41, 2F

10/18 14:42, , 3F
你可以把a改成二維陣列,譬如 a[30][100]; 這樣能讀30行
10/18 14:42, 3F

10/18 14:52, , 4F
while (fscanf(in,"%s",a) != EOF)就好
10/18 14:52, 4F

10/18 20:49, , 5F
feof不好用 判斷scanf回傳值比較好些...
10/18 20:49, 5F

10/18 20:50, , 6F
樓上...我已經打出來了
10/18 20:50, 6F

10/18 20:51, , 7F
補一個來亂的方法...用mmap (ry
10/18 20:51, 7F

10/18 20:53, , 8F
喔~~ 沒仔細看 囧....
10/18 20:53, 8F
文章代碼(AID): #1EdHpkHS (C_and_CPP)
文章代碼(AID): #1EdHpkHS (C_and_CPP)