用c语言读取文本文件

用c语言读取文本文件,c,dynamic,dynamic-memory-allocation,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

我对编码非常陌生,在打开文件时遇到了一些困难。我做了一些基本的文件,其中的数字都是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;
 }

我想读取文本文件并将其打印在屏幕上。我想也许我可以做上一个节目,但我也有彩车。我必须将它们保存在新的向量中吗?你会怎么做?您能帮助我吗?

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

int data1;
int data2;
float data3;

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

查看fscanf上的参考。

哪里是
110
顶点信息?后面只有8个数字。但是,您的“新文件”可能需要读入
struct
,例如
struct indata{inta;intb;float f;}我投票结束这个问题,因为这是一个“写我的代码”的问题,示例很差。请更新这个问题。很难说你到底想要什么。考虑<代码> int x;一些_函数(x)
x
尚未初始化或分配。
some\u function()
接收什么值<代码>x
未定义或初始化,因此会导致问题。同样的事情也发生在
data1
上。
int data1;
int data2;
float data3;

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