在C中以浮点形式读取txt文件的行
我有一个文本文件,其中的文本如下:在C中以浮点形式读取txt文件的行,c,file-io,C,File Io,我有一个文本文件,其中的文本如下: 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 (fil
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的,所以我不知道如何获得彩车。非常感谢您的帮助。如果您想从txt文件中读取浮点数,也许您应该使用
fscanf
函数从文件中读取您想要的每个值
在我看来,您应该使用以下说明通过您提供的文本文件读取浮点数:
fscanf(文件流,“p%f”和&x)代码>
通过上述函数,p
被读取并忽略,但第一个浮点数被读取并放入变量x
,您可以通过printf(“%f”,x)打印它代码>
您还可以在中阅读更多关于它的信息
其次,您将通过在代码中输入的指令获得编译时错误:
x=fileText[2]代码>
这是因为不能将几个字符初始化为浮点数。这毫无意义。要将字符串转换为浮点数,应使用此函数将字符串转换为浮点数:
x=atof(fileText)代码>
通过上面的函数,如果您的程序能够,它将fileText
转换为浮点数,并将其放入x
变量中
您应该包括stdlib.h
以使用atof()
如果您想从txt文件中读取浮点数,也许您应该使用fscanf
函数从文件中读取您想要的每个值
在我看来,您应该使用以下说明通过您提供的文本文件读取浮点数:
fscanf(文件流,“p%f”和&x)代码>
通过上述函数,p
被读取并忽略,但第一个浮点数被读取并放入变量x
,您可以通过printf(“%f”,x)打印它代码>
您还可以在中阅读更多关于它的信息
其次,您将通过在代码中输入的指令获得编译时错误:
x=fileText[2]代码>
这是因为不能将几个字符初始化为浮点数。这毫无意义。要将字符串转换为浮点数,应使用此函数将字符串转换为浮点数:
x=atof(fileText)代码>
通过上面的函数,如果您的程序能够,它将fileText
转换为浮点数,并将其放入x
变量中
您应该包括stdlib.h
来使用atof()
为什么不使用fgets
,然后是sscanf
?浮点x,y,z
然后在fgets()
,if(sscanf(fileText,“p%f%f%f”,&x,&y,&z)!=3){/*处理错误*/}
其他wize,x
,y
,z
现在从那一行开始保持3个浮点数。@kiranBiradar(我想你的意思是fgets()
,然后是ssc()
,,,fgets
后跟sscanf
?float x,y,z
然后在fgets()
,if(sscanf(fileText,“p%f%f%f”,&x,&y,&z)!=3){/*处理错误*/}
其他wize,x
,y
,z
现在从那一行开始保持3个浮点数。@kiranBiradar(我想你的意思是fgets()
,然后是ssc()
,,,