fgets()次のようにファイルをスキャンするために使用しています。
char buf[50];
if (fgets(buf, 50, fp) == NULL) {
printf("Error in file parsing.\n");
exit(1);
}
char *p;
p = buf;
pはバッファを指しており、スキャンした文字列を反復処理するために使用しています。fgets()サイズは 50 ですが、実際には、スキャンされた文字列の最後にヌル ターミネータが追加されます。
私のwhileループは次のようになりました:
while (*p != '\0')
これは、テキスト ファイルが次の場合に機能しました: 1 + 23. テキスト ファイルに が含まれ1 + 23 - 5ていると、無限ループに陥ります。なぜこうなった?
\nどちらも失敗したかどうかも確認してみました。最後にstrlen、 for ループを使用して実行しましstrlenたが、それは正確ではありませんでした。
while ループがどのように見えるべきかについての提案はありますか?