尝试使用fscanf将.txt文件中的字符串读取到字符串数组中,使用ints但不使用字符串。断层

尝试使用fscanf将.txt文件中的字符串读取到字符串数组中,使用ints但不使用字符串。断层,c,C,我试图从文本文件中读取字符串形式的数字,然后将它们放入数组中。我最初有一个整数数组,正在使用数据类型为“%d”的fscanf进行读取。这很好,但是我想把数字读成字符串 因此,我创建了nums数组,并尝试让fscanf将字符串读入nums数组。(数组是固定大小的原因是我的赋值决定了这一点) 代码编译时没有任何警告,但首次尝试将“%s”读入nums[y]时会产生分段错误 我在fp中打开的txt文件大致如下:“83222 331111 335533 33222 33333…”,其中大约有5000个数字

我试图从文本文件中读取字符串形式的数字,然后将它们放入数组中。我最初有一个整数数组,正在使用数据类型为“%d”的fscanf进行读取。这很好,但是我想把数字读成字符串

因此,我创建了nums数组,并尝试让fscanf将字符串读入nums数组。(数组是固定大小的原因是我的赋值决定了这一点)

代码编译时没有任何警告,但首次尝试将“%s”读入nums[y]时会产生分段错误

我在fp中打开的txt文件大致如下:“83222 331111 335533 33222 33333…”,其中大约有5000个数字,每个数字之间有一个空格

char *nums[76*76];
int y = 0;
while (fscanf(fp,"%s",nums[y]) == 1){
   y++;
}

您需要类似于char nums[5000][16]的指针,您有5776个指针,但没有一个指向任何地方。您可能认为
char*
是C的“字符串”类型,但它比这更复杂。
scanf()
系列不是读取字符串的好选择,请仔细阅读“%s”的文档。查看
fgets()
strtok()
来读取文件的行数(您没有提到文件有多少行)并在空格处将它们分成几部分。您需要类似于
char nums[5000][16]
的东西您有5776个指针,但它们都没有指向任何地方。您可能认为
char*
是C的“字符串”类型,但它比这更复杂。
scanf()
系列不是读取字符串的好选择,请仔细阅读“%s”的文档。查看
fgets()
strtok()
以读取文件的行数(您没有提到文件有多少行),并在空白处将它们分成若干部分。