gpt4 book ai didi

c - fgetc 省略字符然后分配整数

转载 作者:行者123 更新时间:2023-11-30 15:48:36 36 4
gpt4 key购买 nike

我有一个文件 data.dat

HI5 LO2

我想从中读取 5 和 2,并将它们存储为 uint16。我已经写了

#include <stdio.h>
int main()
{
unsigned short int high;
FILE *pFile;
pFile = fopen("data.dat", "r");
int c;
while(c != 'I')
{
c = fgetc(pFile);
}
high = while(c != ' ')
{
c = fgetc(pFile);
}
printf("%i\n", high);
if(c == ' '){puts("we read until 1st line space");}
else{puts("we didn't read until 1st line space");}
fclose(pFile);
return 0;
}

high 被分配给 while 循环,因为我们可能会得到更大的数字,如 10,但这样做会产生错误。如何从文本文件中的值分配整数?

最佳答案

使用fscanf()相反:

unsigned short i[2];
/* fscanf() returns number of successful assignments made,
which must be 2 in this case. */
if (fscanf(pFile, "HI%hu LO%hu", &i[0], &i[1]) == 2)
{
}

如果文件有多行,请使用 fgets()逐行阅读并使用 sscanf()从每一行中提取整数值。

始终检查 IO 操作的结果,例如 fopen() 不会返回 NULL

关于c - fgetc 省略字符然后分配整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16738293/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com