gpt4 book ai didi

C 从文件中读取数字到数组中

转载 作者:行者123 更新时间:2023-11-30 18:12:31 24 4
gpt4 key购买 nike

嘿,所以我试图从文本文件中读取数字并将它们放入数组中,但是当我尝试打印它们时,我得到了奇怪的数字。文本文件如下所示:

45
77
8
...

我猜我正在使用的循环有问题,但我似乎无法找出问题所在。感谢您的帮助!

代码:

#define MAX_ARRAY_SIZE 20

int main(int argc, char * argv[])
{
FILE *myFile;
int myArray[MAX_ARRAY_SIZE];
//char filename[32];
//printf("enter filename\n");
//scanf("%s", filename);

myFile = fopen("asdf.txt", "r");
if (!myFile) {
printf("cant open file\n");
return 1;
}
int status;
int i = 0;
while ((status = fscanf(myFile, "%2d", &myArray[i])) == 1 && i < MAX_ARRAY_SIZE - 1) {
++i;
}
fclose(myFile);


int a;
for (a = 0; i < MAX_ARRAY_SIZE; ++i) {
printf("%d ", myArray[i]);
}
printf("\n");
return 0;
}

最佳答案

问题出在你的打印循环中:

for (a = 0; i < MAX_ARRAY_SIZE; ++i)

无法保证您正在读取 MAX_ARRAY_SIZE 值。另外,如果您使用 'a' 作为循环迭代器,那么您需要使用 'a'。你的循环应该是:

for (a = 0; a < i; ++a)
printf("%d ", myArray[a]);

您也不需要在格式说明符中设置字段宽度,fscanf(myFile, "%d", &myArray[i])) 即可。

关于C 从文件中读取数字到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34891746/

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