我正在尝试用C编写一个程序,我将从终端运行并接受来自文件的一些行,例如“error.log”。我怎么能这样做?
命令示例: ./prog< error.log中
答案 0 :(得分:0)
如果您使用shell语法进行输入重定向 - 即< filename
- 那么您实际上不需要执行任何特殊操作。您只需从标准输入读取(例如普通gets
或scanf
,而不是fgets
或fscanf
。
如果你想把文件名作为参数,那么,正如评论者指出的那样,你可以在传递给你的argv
函数的main()
数组中找到那些参数,从index {开始{1}}。
答案 1 :(得分:-2)
这是开始的例子。
#include <stdio.h>
#define BLOCK_SIZE 256
int main(int argc, char** argv)
{
char buf[BLOCK_SIZE];
size_t bytes;
while(!feof(stdin)) {
bytes = fread(buf, 1, BLOCK_SIZE, stdin);
fwrite(buf, 1, bytes, stdout);
}
return 0;
}
它只打印出您指定为./prog < filetoprint.txt