掃描我的工作是要讀的字符串的多條線路,並將它們整理到字符串數組程序時忽略換行字符。scanf函數從輸入文件
我試圖手動讀取第一行和循環應該退出,一旦讀取新行字符「\ n」。當我在終端中手動輸入字符串,但在輸入文件中讀取(通過終端)時,它不會讀取換行符,並且循環繼續。
char array[20][20];
char letter = 'a';
for (int i = 0; letter != '\n'; i++) {
scanf("%s",array[i]); //store the word into an array of words
printf("Scanned %s\n",array[i]);
scanf("%c",&letter); //look for space or new line character
}
它可以從文件中讀取數據時,當我手動輸入這樣的文字,而不是:
word word1 word2
word3 word4 word5
當手動輸入,我將進入第一線,「字字詞1字詞2」,打輸入,它會掃描該行並結束程序。
當使用文件,則返回:
$ ./potw18 < input.txt
Scanned word
Scanned word1
Scanned word2
Scanned word3
Scanned word4
Scanned word5
Scanned
Scanned ▒
Scanned
Scanned ▒
Scanned
Scanned ▒8.▒
Scanned
Scanned ▒8.▒
Scanned
而且仍在繼續。
請問您可以在這裏發佈'array'的定義嗎? –
請將[mcve]和示例文本文件一起發佈 –
使用示例和數組定義更新了OP。 –