我需要将多达16个浮点值保存到一个bin文件中,以便稍后读取,并对信息进行一些处理,但我从一开始就遇到了问题,因为我不太确定最好的方法是什么,而且我所写的不适用
void FileMaker (void)
{
char buff[10];
float num;
int count = 0;
printf("Enter 16 Floating numbers:");
FILE *fh = fopen ("Matrix.bin", "wb");
if (fh == NULL)
printf("Fail");
if (fh != NULL)
{
while (count >17)
{
fgets(buff, 10, stdin);
num = atof(buff);
fwrite(&num, sizeof(float), 1, fh);
count++;
}
fclose (fh);
}
}
基本上,我试图做的是一次从键盘上获得一个浮点值,然后将其打印到文件中,重复16次,但程序什么也不做,在没有从用户那里得到任何东西的情况下,在主中达到return(0)。
问题就在这里:
while (count >17)
代码将不会进入块,因为0 > 17
为false。
试试这个:
while (count < 17)
(或者我个人更喜欢for
循环)
for (count = 0; count < 17; ++count)
{
...
}