char string[50], s[50];
File *f = tmpfile();
count = 1;
while (fgets(string, 50, stdin)) {
if (string[0] == '!') {
rewind(f);
} else {
fwrite(string, 50, 1, f);
}
if (strcmp("history\n", string) == 0) {
rewind(f);
while(fgets(s, 50, f)) {
printf("\t%d %s", count, s);
count++;
}
count = 1;
}
}
このコードのコンテキストはそれほど重要ではありません。fgets
問題は、「ls」、「date」、および「history」を取り込むとしましょう。結果の出力は次のとおりです。
1 ls
2 3 te
4 5 ory
6
そのはず:
1 ls
2 date
3 history