从文件中读取只获得第一个字符

时间:2014-06-28 20:46:51

标签: c arrays string

我需要在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时,只读取第一个字母。另外,我总是遇到一些分段错误。

我需要更改什么才能让程序读取整个名称?

1 个答案:

答案 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);
}