用c读取文本文件

时间:2016-12-16 20:32:10

标签: c dynamic dynamic-memory-allocation

我对编码很新,我在打开文件时遇到了一些麻烦。我做了一些基本文件,其中所有int的数字

以下是文件示例:

20
110
1 0 1 5
5 6 7 8

这是我写的代码:

int* init_dados(char *name, int *n, int *iter){
FILE *f;
int *p, *q;
int i, j;

f=fopen(name, "r");
if(!f)
{
    printf("Error on the access of the file\n");
    exit(1);
}
// number of iteractions
fscanf(f, " %d", iter);
// number of vertices
fscanf(f, " %d", n);

p = malloc(sizeof(int)*(*n)*(*n));
if(!p)
{
    printf("Error on the allocation of the memory\n");
    exit(1);
}
q=p;

for(i=0; i<*n; i++)
    for(j=0; j<*n; j++)
        fscanf(f, " %d", q++);
fclose(f);
return p;
 }

现在我有一个新文件,它有int和float这样:

    1 2 7.83
    1 3 -5.45
    1 4 8.90

我想阅读文本文件并将其打印在屏幕上。我想也许我可以做最后一个程序,但我也有浮动。我是否必须将它们保存在新的载体中?你会怎么做?你能帮我吗?

2 个答案:

答案 0 :(得分:1)

你可以在fscanf中使用%f而不是%d,当然你需要一个指向浮点变量的指针

答案 1 :(得分:0)

你可以试试像

这样的东西
int data1;
int data2;
float data3;

fscanf(f, "%d %d %e", data1, data2, data3);

请查看http://www.cplusplus.com/reference/cstdio/fscanf/以获取有关fscanf的参考资料。