我对编码很新,我在打开文件时遇到了一些麻烦。我做了一些基本文件,其中所有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
我想阅读文本文件并将其打印在屏幕上。我想也许我可以做最后一个程序,但我也有浮动。我是否必须将它们保存在新的载体中?你会怎么做?你能帮我吗?
答案 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的参考资料。