读取整数文件并将其加载到数组中

时间:2015-04-20 21:23:11

标签: c arrays file

我必须打开一个文件并读取其上的数字,然后将这些数字放在一个数组中。我有下面的代码,但它不会打印我的数字。我无法弄清楚为什么,你们能帮助我吗?

#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]);



}

2 个答案:

答案 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)之后是否应该有分号?