【发布时间】:2013-05-24 15:14:15
【问题描述】:
我有一个文件 data.dat
HI5 LO2
我想从中读取 5 和 2,并将它们存储为 uint16s。我写过
#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,但是这样做会产生错误。如何从文本文件中的值分配整数?
【问题讨论】:
-
欢迎来到 Stack Overflow。请尽快阅读FAQ。我观察到您希望将值存储在某种
uint16变量中,但不要声明任何此类变量。此外,uint16不是标准 C (ISO/IEC 9899:2011) 未定义的“标准”类型。它有条件地定义了相关类型uint16_t——如果平台没有 16 位无符号整数,则不必定义它。你确实定义了一个unsigned short;这大约相当于uint16,但最好了解很多编程都是关于一致性的。