【发布时间】:2016-05-25 23:12:13
【问题描述】:
我正在尝试遍历文件中的每一行和标准输入中的每一行以进行比较。当我将 fgets 嵌套在 while 循环中时,外部循环不会第二次通过。我已经看到,如果内部循环是一个文件,它可以关闭以重置到第一行,但我似乎无法对标准输入做同样的事情。有没有办法在stdin开头重新启动?
while (fgets(fline, sizeof(fline), fileInput)){
while (fgets(line, sizeof(line), stdin)){
printf("%s", fline);
printf("%s", line);
}
fclose(fileInput);
}
如果文件输入包含
a
b
c
而标准输入是
d
e
我要打印出来
a
d
a
e
b
d
b
e
c
d
c
e
【问题讨论】:
-
如果
stdin指向键盘而不是文件,则无法备份,因为无法备份键盘。但是,如果stdin指向一个文件,则可以在文件中备份,使用类似fseek()
标签: c