我需要运行程序并将文件传入其中。它在写作时起作用
./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;抛出分段错误,当它以其他方式工作正常时?
答案 0 :(得分:0)
您不需要考虑文件。只需编写代码,就像用户输入input.txt文件的内容一样。
&#39;&LT;&#39;将specyfied文件的内容重定向到您的标准输入。
希望这可以解释更多: http://wiki.bash-hackers.org/howto/redirection_tutorial