我已經開始學習如何使用字符串,但是我對整個概念有點困惑。我試圖從包含字符串的文件逐字讀取。使用C的字符串分隔符
以下是文件:
Row, row, row your boat,
Gently down the stream.
Merrily, merrily, merrily, merrily,
Life is but a dream.
我的方法是使用
char hold[25];
// Statement
while(fscanf(fpRow, "%s", hold) != EOF)
printf("%s %d\n", hold, strlen(hold));
所以,我的任務是讀取每個字符串,並排除所有的,和。在文件中。爲此,該方法將使用%[^ ,.]而不是%s正確嗎?但是當我嘗試這種方法時,我的字符串只想讀取文件的第一個單詞,循環永遠不會退出。有人可以向我解釋我做錯了什麼嗎?另外,如果問fscanf和fgets之間的意義是不是太大了?由於
while(fscanf(fpRow, "%24[^,.\n ]", hold) != EOF)
{
fscanf(fpRow, "%*c", hold);
printf("%s %d\n", hold, strlen(hold));
}
你的意思是'fgetc()'?這隻能讀取一個字符,而'fscanf()'可以讀取更多,也可以轉換爲其他數據類型。 – 2013-02-17 22:55:05
我總是希望使用'fgets'來獲得一整行,並在循環中單獨處理它。它確定你最終可以進入FEOF;如果你沒有完成掃描一行,我不知道'fscanf'會爲你自己表現,如果你沒有用格式說明符來到行尾...... – Floris 2013-02-17 22:57:34
@ Code-Guru-啊,對不起,它應該是'fgets'。對不起,我現在編輯它。 – Nathan 2013-02-17 23:04:54