gpt4 book ai didi

c - 将输入读入数组

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:48 24 4
gpt4 key购买 nike

我试图从一个文件中读取一系列 8 个整数到一个数组中,然后显示这些整数。我第三次一直遇到段错误,我不太清楚自己做错了什么。

struct aStruct {
int a;
int b;
...
};

typedef struct aStruct myStruct;

while(fgets(line, MAX_LENGTH, file) != NULL) {
int myArray[8] = {0};
char* val = strtok (line," ,\n\t\r");
while (val != NULL)
{
myArray[i] = atoi(val);
i++;
val = strtok (NULL, " ,\n\t\r");
}

myStruct foo;

foo.a = myArray[0];
foo.b = myArray[1];
...
}

输入文件的结构如下:

0, 0, 1, 5, 0, 0, 0, 0
1, 0, 2, 5, 0, 0, 0, 0
2, 0, 3, 5, 0, 0, 0, 0
3, 0, 4, 5, 0, 0, 0, 0
4, 0, 5, 5, 0, 0, 0, 0

测试时:

printf("myArray[0]: %d ", myArray[0]);

我得到一个奇怪的输出 0 0

我认为它应该是 0 1。我是否没有正确初始化某些东西,或者我的 new 结构语法不正确?我尝试了几种不同的组合,但还是不太明白。

最佳答案

我认为您的问题出在未初始化或未重置的 i 变量中。在 while 循环中添加 i = 0 可能会有所帮助。

while(fgets(line, MAX_LENGTH, file) != NULL) {
i = 0; // <<< reseting array index
int myArray[8] = {0};
char* val = strtok (line," ,\n\t\r");
while (val != NULL)
{
//...
i++;
}
}

关于c - 将输入读入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966371/

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