我必须打开一个文件并读取其上的数字,然后将这些数字放在一个数组中。我有下面的代码,但它不会打印我的数字。我无法弄清楚为什么,你们能帮助我吗?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
FILE *f;
int *ptr;
char inteiros[100];
int inteiros_b[100];
f=fopen("C:\\Users\\PC\\Documents\\Inteiros.txt", "r");
if(f==NULL)
{
printf("Error\n");
return 0;
}
else
printf("Success\n");
if(ptr==NULL);
return NULL;
while(fgets(inteiros, 100, f)!=NULL)
{
int i=0;
inteiros_b[i]=atoi(inteiros);
i++;
}
for(int i=0;i<100;i++)
printf("%d\n", inteiros_b[i]);
}
答案 0 :(得分:1)
使用fscanf
功能
int main() {
FILE * file = fopen("C:\\Users\\PC\\Documents\\Inteiros.txt", "r");
int inteiros[100], i = 0, number;
if (file == NULL) {
printf("Error\n");
return 0;
} else printf("Success\n");
while (fscanf(file, "%d", & number) > 0) {
inteiros[i] = number;
i++;
}
fclose(file);
for (int i = 0; i < 100; i++)
printf("%d\n", inteiros[i]);
}
答案 1 :(得分:0)
如果(PTR == NULL); return NULL;
你永远不会将ptr分配给任何东西,所以这段代码不会每次都返回NULL吗?
编辑:另外,if(ptr == NULL)之后是否应该有分号?