gpt4 book ai didi

c - 第一行代码之前的段错误

转载 作者:太空狗 更新时间:2023-10-29 17:05:25 27 4
gpt4 key购买 nike

我正在开发一个简单的 C 程序来打开一个文件并从中读取一些数据。没有编译错误,但是当我在某个文件上运行程序时,出现“Segmentation Fault: code dumped”错误。我在代码的最顶部插入了一条打印语句,但它没有运行。当您还没有做任何事情时,是否有可能出现段错误?

#include <stdio.h>


int main(int argc, char **argv)
{
printf("%s", "Made it to here!");
FILE *fp;
char input[100];
fp = fopen(argv[1], "r+b");
fgets(input, sizeof(input), fp);
printf("%s", input);
fclose(fp);
return(0);

}

当我在其自身的文本版本上运行它时,它会工作,它会打印出第一行。但是,当我在另一个文件 texttest.vmf 上运行它时,出现段错误并且第一个打印不执行。 VMF 是阀图文件,但它们采用标准文本格式。这个文件大约有 3.7 KB 大。有什么想法吗?

最佳答案

您的代码不一定在 printf 之前失败:对 printf 的调用可能已成功,但因为控制台的输出是缓冲的,程序可能在输出写入屏幕之前就崩溃了。

\n 添加到输出字符串会导致控制台缓冲区刷新。如果您希望通过 printf 进行调试,您应该始终将 \n 添加到格式字符串的末尾。

关于c - 第一行代码之前的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13486137/

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