私は比較のために、ファイル内のすべての行とstdin内のすべての行をループしています。 whileループでfgetsを入れ子にすると、外側ループは2回目には行きません。私は、内側のループがファイルであった場合、最初の行にリセットするために閉じられる可能性があることを見てきましたが、stdinで同じことをすることはできません。 stdinの始めに再起動する方法はありますか?fgetsをstdinでネストする
while (fgets(fline, sizeof(fline), fileInput)){
while (fgets(line, sizeof(line), stdin)){
printf("%s", fline);
printf("%s", line);
}
fclose(fileInput);
}
ファイル入力は
a
b
c
とstd内に含まれている場合
d
e
私はあなたがきた、内側のループが完了した後、それは
a
d
a
e
b
d
b
e
c
d
c
e
'stdin'がファイルではなくキーボードを指している場合、キーボードはバックアップできないので、バックアップする方法はありません。しかし、 'stdin'がファイルを指している場合、' fseek() 'のようなものを使ってファイルにバックアップすることができます。 – user3629249