次のサンプル コードを含む名前のない本から C を学ぼうとしています。
#include <stdio.h>
int main() {
char word[10];
int i = 0;
while (scanf("%9s", word) == 1) {
i = i+1;
if (i % 2) {
fprintf(stdout, "%s\n", word);
} else {
fprintf(stderr, "%s\n", word);
}
return 0;
}
}
この例は、次のコマンドを実行して、出力を別のファイルにパイプする方法を示しています。
./thisprogram < input.txt > output.txt 2> error.txt
1 つおきの単語をそれぞれのファイルに出力することになっています。動作するはずですが、実行すると最初の単語だけが出力され、scanf が最初の値のみを取得する理由がわかりません。私はコードを正しくコピーしたと確信していますが、これをリストする正誤表はありません.