在程序C编程中使用终端导入文本文件

时间:2013-11-14 18:57:43

标签: c

我正在尝试用C编写一个程序,我将从终端运行并接受来自文件的一些行,例如“error.log”。我怎么能这样做?

命令示例: ./prog< error.log中

2 个答案:

答案 0 :(得分:0)

如果您使用shell语法进行输入重定向 - 即< filename - 那么您实际上不需要执行任何特殊操作。您只需从标准输入读取(例如普通getsscanf,而不是fgetsfscanf

如果你想把文件名作为参数,那么,正如评论者指出的那样,你可以在传递给你的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

的文件