gpt4 book ai didi

c - 如何从文本输入文件中读取 0 和 1 并执行位操作(移位)

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:06 25 4
gpt4 key购买 nike

我有一个文本文件输入,它有两列,第一列有一个二进制数,第二列有字符串宽度(将在输出数据时使用)。我需要在读取二进制输入后执行位操作。

我正在使用以下代码读取输入文件并将 input 声明为 unsigned int

while ((fscanf(fp,"%s %d", input, &count) != EOF)) 

在尝试执行位操作时获取输入后,我收到“二进制操作数无效”错误消息。所以我做错了任何声明,还是我需要将二进制转换为十进制以执行位操作?我需要在操作后将输出作为位序列发送到文件。

最佳答案

如果您添加一个输入文件示例会更容易,但您首先需要获得正确的输入。我建议你先尝试这样的事情:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
FILE *fp;
char input[80];
int count;
int bin;

fp = fopen("infile.txt", "r");
while ((fscanf(fp,"%s %d", input, &count) != EOF)) {
bin = strtol(input, NULL, 2);
printf("input: %s, count %d, bin %d\n", input, count, bin);
}
fclose(fp);
return 0;
}

在名为“infile.txt”的输入文件上看起来像这样:

0011101 10
1001011 20
0101011 30
1001010 40

这将产生以下输出:

input: 0011101, count 10, bin 29
input: 1001011, count 20, bin 75
input: 0101011, count 30, bin 43
input: 1001010, count 40, bin 74

所以如果我不在正确的轨道上,请告诉我!

关于c - 如何从文本输入文件中读取 0 和 1 并执行位操作(移位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26320369/

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