看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 要從test.txt中讀取資料,但是都讀不到 希望得到的正確結果: 將檔案中資料讀出 程式跑出來的錯誤結果: 甚麼都沒有,除了一直往下的dos 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) #include<stdio.h> #include<stdlib.h> int main () { FILE *fp; char ch; fp=fopen("test.txt","r"); while(ch!=EOF) { fscanf(fp,"%c",&ch); printf("%c",ch); } system("pause"); } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.66.168.5
devilarise:%c <==是只讀單一字元的意思喔 01/10 20:01
devilarise:讀單一字元的指令好像不是fscanf手邊沒書懶得查 01/10 20:02
devilarise:還有你的while條件很詭異 01/10 20:02
tw00088437:http://tinyurl.com/yl2ltn5 01/10 20:03
devilarise:你要用EOF判斷, 應該把fscanf的讀取函式寫在條件式上 01/10 20:03
devilarise:這類讀檔的函式都會回傳值, 通常都會利用回傳值判斷 01/10 20:05
discipile:因為希望是一次讀ㄧ個字元並印出,然後讀到檔案結尾 01/10 20:08
discipile:目前將ch!=EOF那個地方換成fscanf(fp,"%c",&ch)!=EOF 01/10 20:09
discipile:但他都會多吃掉ㄧ格 01/10 20:09
discipile:以解決,將while內的fscanf(fp,"%c",&ch);刪掉 01/10 20:42