gpt4 book ai didi

C:从文件读取时出现段错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:39 25 4
gpt4 key购买 nike

我最近开始从事这个项目,但在将某些内容读入全局变量时遇到了问题。这是为了练习 pthreads,这就是我首先使用全局变量的原因。该程序应该从代表已解决的数独谜题的文件中读取数字,并且文本文件将被格式化为 9 个数字字符后跟一个换行符,共 9 次。我已经确定,在运行这个程序时,文件是这样格式化的。我知道我的这段代码包含段错误,但我不知道在哪里。我只能假设它与 fgets() 有关。但是,我查找的资源中没有任何内容会让我认为我使用不当。当我诉诸于使用 fgetc 时,它甚至会这样做,一次读取它,为 fgetc 返回一个 int 提供住宿,这与 fgets 将字符串分配给变量(在本例中为 s)不同。

除非我确定找不到它,否则我不会将它带到堆栈溢出;我已经梳理了一个小时的代码,试图找到这个段错误,但它对我来说没有任何意义。我知道 Seg Fault 就在这里,因为在它之后,它应该打印出整个拼图矩阵,但它并没有做到那么远。

int main(int argc, char *argv[]) {

FILE* puzzlefile;
char s[10];
int i=0, j=0, skip;
//open the file passed in via command line
puzzlefile = fopen(argv[1], "r");

for (i=0; i<9; i++){
//get first string of 10 characters
fgets(s,10, puzzlefile);
for (j=0; j<9; i++){
//read the numbers from s into the puzzle 2D
//array, which takes ints. Ignore the 10th
//character, which will be \n
puzzle[j][i] = (int)(s[j]-'0');
}
}
...
}

最佳答案

您的问题似乎是这样的:

  for (j=0; j<9; i++)
^^^

这里应该是j++,不是i++

关于C:从文件读取时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29381991/

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