【发布时间】:2015-04-27 20:58:33
【问题描述】:
我正在尝试从 C 中的一个文本文件中读取,其中包含要在另一个函数中使用的 8 位二进制数列表。
The text file is formatted like:
01101101
10110110
10101101
01001111
11010010
00010111
00101011
等。 . .
这就是我想要做的事情
伪代码
void bincalc(char 8_bit_num){
//does stuff
}
int main()
{
FILE* f = fopen("test.txt", "r");
int n = 0, i = 0;
while( fscanf(f, "%d ", &n) > 0 ) // parse %d followed by a new line or space
{
bincalc(n);
}
fclose(f);
}
我认为我在正确的轨道上,但是任何帮助表示赞赏。
【问题讨论】:
-
只需阅读整行(
fgets或fscanf(f, "%s...)),然后逐行解析。 -
您的建议无效。以这种方式读取的十进制数比
char可以存储的要大远,您最多只能以这种方式存储三个“但”。将 十进制 解析为二进制是可能的,但将实际字符解析为字符串可能更容易。 -
代码正在读取一个 int(4 个字节)并且 bincalc 函数需要一个 char(1 个字节)建议通过读取 8 个字符并将它们压缩成一个 8 位字符来将输入转换为 char然后使用压缩结果调用 bincalc 函数
-
@user3629249: ...但是当然在那个函数中没有什么可做的...