gpt4 book ai didi

c - 我正在尝试编写一个 C 程序来将文件中的整数存储到数组中,但它不起作用。有人能帮我吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:06 25 4
gpt4 key购买 nike

我好像不太明白文件流的工作原理。我的文本文件现在包含以下整数:1 10 5 4 2 3 -6,但我希望程序能够从文件中读取任意数量的整数,如果它发生变化。

显然我什至没有使用正确的功能。我写的代码如下:

 int main() {
printf("This program stores numbers from numeri.txt into an array.\n\n");
int a[100];
int num;
int count = 0;

FILE* numeri = fopen("numeri.txt", "r");

while (!feof(numeri)) {
num = getw(numeri);
a[count] = num;
if (fgetc(numeri) != ' ')
count++;
}

int i;
for (i = 0; i < count; i++) { printf("%d ", a[i]); }

return 0;
}

我希望它用存储的数字打印出数组,但我得到的只是:540287029 757084960 -1

谁能帮助我理解我做错了什么,也许可以告诉我如何正确编写这种代码?

最佳答案

我已经根据评论修复了您的代码。我用了fscanf从文件中读取并通过检查 count < 100 来限制可以存储在数组中的数字数量并检查是否fscanf恰好填充了一个参数。

此外,为了安全起见,我检查了文件是否可以打开。如果无法打开,则打印错误信息和return 1。 .

int main() {

printf("This program stores numbers from numeri.txt into an array.\n\n");
int a[100] = {0};
int num;
int count = 0;
int i = 0;

FILE* numeri = fopen("numeri.txt", "r");
if (numeri == NULL) {
printf("Can't open file\n");
return 1;
}

while (count < 100 && fscanf(numeri, "%d", &num) == 1) {
a[count++] = num;
}

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

return 0;
}

关于c - 我正在尝试编写一个 C 程序来将文件中的整数存储到数组中,但它不起作用。有人能帮我吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57823158/

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