我需要在C中编写一个读取2列数据的程序。
该文件如下所示:
value1 4.34
value2 45.4
value3 35325.34
等等。 编辑!! 到目前为止,这是我的代码:
void readin()
{
#include <stdio.h>
FILE *input;
int i,x=1;
float value[5];
int name[5];
if (input == NULL)
{
printf("Error");
}
for (i=1; i <5; i++)
{
fscanf(input,"%s %f \n", &name[i],%value[i]);
}
for (x=1; x<5; x++)
{
x=i
printf("\n %c &.5f", name[i],value[i]);
i++;
}
fclose(input);
}
当我在%c
语句中放入fscanf
时,只读取第一个字母。另外,我总是遇到一些分段错误。
我需要更改什么才能让程序读取整个名称?
答案 0 :(得分:0)
void readin(){
FILE *input;
int i, x;
float value[5];
char name[5][16];
input = fopen("data.txt", "r");
if (input == NULL)
{
printf("Error");
return ;
}
for (i=0; i <5; i++)
{
if(2!=fscanf(input, "%15s %f", name[i], &value[i]))
break;
}
for (x=0; x<i; x++)
{
printf("%s %.5f\n", name[x], value[x]);
}
fclose(input);
}