gpt4 book ai didi

c++ - 文件重定向到程序

转载 作者:行者123 更新时间:2023-12-02 10:08:54 24 4
gpt4 key购买 nike

我在将文件重定向到我的程序时遇到问题。我有一个名为 test 的 Makefile,我想将一个文本文件重定向到它作为输入。例如,我想做:

测试<文件.txt

作为我的可执行文件的输入。但是,当我尝试读取 file.txt 的内容时,我不断收到段错误。这是我的尝试:

int main(int argc, char* argv[])
{
FILE *a;
int count;
a = fopen(argv[1], "r");
for(n = 0; ; n++)
{
count = fgetc(a); // <- here is where my program segfaults
if(feof(a))
break;
}
return 0;
}

可能有人知道为什么会这样吗?

最佳答案

这是因为重定向是由 shell 处理的,而不是作为参数传递的。使用重定向时,文件用于stdin .

您应该始终检查函数的结果,在这种情况下您尝试调用 fopenNULL作为文件名,因此它将返回 NULL导致您的段错误。

关于c++ - 文件重定向到程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com