传递一个程序文件供它阅读

时间:2016-03-22 13:41:36

标签: c++ stdin

我需要运行程序并将文件传入其中。它在写作时起作用

./my_program input.txt

我需要在使用此格式时运行

./my_program < input.txt

但它会引发分段错误。

这不是我的确切代码,但我认为这是最重要的想法。

int main(int argc, char **argv){
    FILE *f = fopen(argv[1], "r");
    char *input;
    input = new char[1000];
    if (f == NULL) {
        std::cout << "file not found" << std::endl;
    }
    else {
        std::cout << "found file" << std::endl;
    }
    fread(input, 1000, 1, f);
    //...do stuff with it...//
    return 0;
}
基本上,我如何绕过&#39;&lt;&#39;抛出分段错误,当它以其他方式工作正常时?

1 个答案:

答案 0 :(得分:0)

您不需要考虑文件。只需编写代码,就像用户输入input.txt文件的内容一样。

&#39;&LT;&#39;将specyfied文件的内容重定向到您的标准输入。

希望这可以解释更多: http://wiki.bash-hackers.org/howto/redirection_tutorial