[問題] 讀檔問題

看板C_and_CPP作者 (孤獨的風)時間14年前 (2010/01/10 19:59), 編輯推噓0(0010)
留言10則, 3人參與, 最新討論串3/9 (看更多)
遇到的問題: (題意請描述清楚) 要從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

01/10 20:01, , 1F
%c <==是只讀單一字元的意思喔
01/10 20:01, 1F

01/10 20:02, , 2F
讀單一字元的指令好像不是fscanf手邊沒書懶得查
01/10 20:02, 2F

01/10 20:02, , 3F
還有你的while條件很詭異
01/10 20:02, 3F

01/10 20:03, , 4F

01/10 20:03, , 5F
你要用EOF判斷, 應該把fscanf的讀取函式寫在條件式上
01/10 20:03, 5F

01/10 20:05, , 6F
這類讀檔的函式都會回傳值, 通常都會利用回傳值判斷
01/10 20:05, 6F

01/10 20:08, , 7F
因為希望是一次讀ㄧ個字元並印出,然後讀到檔案結尾
01/10 20:08, 7F

01/10 20:09, , 8F
目前將ch!=EOF那個地方換成fscanf(fp,"%c",&ch)!=EOF
01/10 20:09, 8F

01/10 20:09, , 9F
但他都會多吃掉ㄧ格
01/10 20:09, 9F

01/10 20:42, , 10F
以解決,將while內的fscanf(fp,"%c",&ch);刪掉
01/10 20:42, 10F
文章代碼(AID): #1BIS4In6 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BIS4In6 (C_and_CPP)