查看完整版本: 讀取文件 問題似乎是文件檔無法判斷是否結束
頁: [1]

aaaa4489 發表於 2011-9-2 11:47 PM

讀取文件 問題似乎是文件檔無法判斷是否結束

本帖最後由 aaaa4489 於 2011-9-3 01:39 AM 編輯

我是想做一個可以進行測驗的程式(主要是打算拿來背單字)
我用來練習的文件檔(基數如下
狗 n.
dog
貓 n.
cat
豬 n.
pig
程式碼如下
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    FILE *fp;
    char Filename,Cword,word,Uword;    prin tf("輸入你的檔名\n");
    g et s(Filename);
    f p=fo pen(Filename,"r");
   
    w hile(strcmp(word,Uword)!=0)
    {
    pri ntf("輸入錯誤正確答案是:%s\n",word);
    fg ets(Uword,20,stdin);
    }
    }
  sy stem("PA USE");   
  ret urn 0;
}
不知道為啥......... 一直說有敏感內容只好在裡面亂加些空格
程式進行到豬之前都正常
進行到豬以後 永遠顯示輸入錯誤正確答案是:pig
請各位大大幫忙解決...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

trtc008056 發表於 2011-9-3 01:06 AM

可以看一下原始碼嗎?

這種裝況應該是忘記加上rewind(file);

然後指標都在最後一行所導致

如果要簡單一點的話建議先將題目檔先到一個資料結構裡面,可以這樣寫struct word{
    char chinese;
    char english;
    int pos;
}

aaaa4489 發表於 2011-9-3 01:40 AM

回復 2# trtc008056


    抱歉  本來是貼附件 沒注意到 沒有出現連結.....

goodbye_mylove 發表於 2011-9-3 05:26 PM

我沒記錯的話,是因為 fgets 會連 '\n' 一起讀進來,
要做 strcmp 的話就要先拿掉,
不然就改用 strncmp 。

aaaa4489 發表於 2011-9-3 06:08 PM

回復 4# goodbye_mylove


    的確成功了  不會在輸入錯誤了 感謝大大<br><br><br><br><br><div></div>
頁: [1]