阅读专栏

时间:2011-07-18 12:33:44

标签: scanf

我正在使用C代码从输入文件中读取三列数字,然后使用获得的数字进行基本数学运算。我的输入文件如下:

155.4996 38.0078 7.65

93.9968 44.9926 7.68

我目前正在尝试使用sscanf分隔列。为了让这个开始,我试图读取列并将第三列打印到输出文件。以下是我现在所拥有的:

FILE * fp;
FILE * fp2;
char *string;
char out[2000];
char read[1000];
int column1, column2, column3;

strcpy(read, "casecent");
strcpy(out, "Diff");

fp = fopen(read, "r");
fp2 = fopen(out, "w+");

while (!feof(fp))
{
    fgets(string, 1000, fp);
    sscanf(string, "%d %d %d", &column1, &column2, &column3);
    fprintf(fp2,"%d\n", column3);

}

我目前在输出文件中输入零而不是数字。我确信我只是错过了一些小而愚蠢的东西,但如果你能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用floatdouble作为列变量的数据类型。然后分别在%f的格式字符串中使用%lfsscanf,具体取决于您选择的数据类型。

如果你想以整数形式存储或打印这些值,你仍然必须首先将它们读作浮点数或双打,然后转换。