【发布时间】:2020-10-28 08:08:52
【问题描述】:
我有一个文本文件,其文本如下:
p 1.002 2.705 3.601
p 4.005 9.001 1.044
...
我想获取浮点值并将它们分配给变量。到目前为止,我已经得到了
FILE *fileStream = fopen("file.txt, "r");
char fileText[100];
float x;
while (fgets(fileText, sizeof fileText, fileStream))
{
if (fileText[0] == 'p')
{
x = fileText[2];
printf("%f",x);
}
}
fclose(fileStream);
但它会打印出一些不在线上的浮点数。我是 C 的新手,所以我不确定如何获得花车。非常感谢任何帮助。
【问题讨论】:
-
为什么不使用
fgets,后跟sscanf? -
float x, y, z;然后在fgets()、if (sscanf (fileText, "p %f %f %f", &x, &y, &z) != 3) { /* handle error */ }Otherwize、x、y、z现在从该行中保留 3-floats。 -
@kiranBiradar(我想你的意思是
fgets()后面跟着sscanf():) -
@DavidC.Rankin 是的,谢谢:D
-
@DavidC.Rankin 成功了!非常感谢