[問題] fread fwrite 問題

作者: momoko0581 (桃子)   2018-07-03 00:01:58
開發平台(Platform): (Ex: Win10, Linux, ...)
win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
dev c++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
fread(str,sizeof(char),MAX,fptr)
想請問fread函數在讀取資料時是一行一行讀取嗎讀到\0結束會自動換行讀取
Welcome to the讀完(不超過MAX)在換行讀World of C lauguage (此時陣列資料重新覆蓋)
還是說它會一次就把全部字元讀到陣列裡最後字元為\0
(全部字元(fread()回傳的count數)不能超過MAX)
但程式用了while 因該至少會跑2次以上
fread()會回傳count數 (會自己累加紀錄到close為止嗎)
餵入的資料(Input):
預期的正確結果(Expected Output):
Welcome to the
World of C language
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
MAX=80;
取其中問題的程式
while(!feof(fptr)) /* 如果還沒讀到檔尾 */
{
bytes=fread(str,sizeof(char),MAX,fptr);
if(bytes<MAX)
str[bytes]='\0';
printf("%s\n",str); /* 印出檔案內容 */
}
補充說明(Supplement):
第一次發問 可能敘述問題不夠好還請包容
作者: Schottky (順風相送)   2018-07-03 04:07:00
你跑跑看程式就知道囉!善用單步執行功能!
作者: momoko0581 (桃子)   2018-07-03 04:18:00
有我用printf()測出來了 感謝~
作者: mmmmei (mmm煤)   2018-07-03 08:58:00
應啦幹

Links booklink

Contact Us: admin [ a t ] ucptt.com