gpt4 book ai didi

c - 出现段错误(核心转储错误)

转载 作者:行者123 更新时间:2023-11-30 20:53:23 24 4
gpt4 key购买 nike

我正在编写一个代码,该代码仅读取文本文件的第一行,然后将其输出到新的文本文件。我收到名为“段错误”的错误。我无法理解这个错误背后的原因。

FILE *inputFile = fopen("input1.txt", "r" );
FILE *outputFile = fopen("output1.txt", "w" );
int i=0;
char line [128][10];
if ( inputFile != '\0' ) {
while ( fgets ( line[i], sizeof line, inputFile ) != '\0' ) {
i++;
fclose ( inputFile );
}
}
for(int j=0;j<i;j++) {
printf("%s",line[j]);
fprintf(outputFile,"%s",line[j]);
}

文本文件包含 1)今天是星期二 2)明天是星期三 ....依此类推(最多 10 行)

我试图只读取第一行,然后立即将其显示到标准输出。忽略下面的所有其他行。

最佳答案

可能有多种原因,但以下是一些:

  1. Today is Tuesday 行至少有 17 个字符,但您正在读取的 line[i] 最多有 10 个字符。尽管如此,您仍然会读取 sizeof line 个字符,这将是所有可能的字符,因为 sizeof line 对您来说是 1280(比 10 大得多)
  2. 假设您成功读取了第一行,然后使用 fclose ( inputFile ); 关闭输入文件,并尝试再次读取。对我来说,这听起来像是未定义的行为。

You need a rubber duck to talk to.

关于c - 出现段错误(核心转储错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48920733/

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