我正在使用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);
}
我目前在输出文件中输入零而不是数字。我确信我只是错过了一些小而愚蠢的东西,但如果你能帮助我,我将不胜感激。
答案 0 :(得分:1)
使用float
或double
作为列变量的数据类型。然后分别在%f
的格式字符串中使用%lf
或sscanf
,具体取决于您选择的数据类型。
如果你想以整数形式存储或打印这些值,你仍然必须首先将它们读作浮点数或双打,然后转换。