如何使用C中的scanf扫描整数值后跟一个字符

时间:2017-05-24 17:59:58

标签: c char text-files scanf getchar

所以我试图从文本文件中扫描91h。到目前为止,我已尝试使用getchar和scanf,但它们都没有将整个91h扫描到声明的字符串。 我在这里缺少一个技巧吗?

2 个答案:

答案 0 :(得分:1)

这有效:

#include <stdio.h>

int main()
{
    FILE *file = fopen("test.txt", "r");

    int x1 = 0;
    int x2 = 0;
    int x3 = 0;
    int x4 = 0;
    fscanf(file, "%xh %xh %xh %xh", &x1, &x2, &x3, &x4);

    printf("x1: %x, x2: %x, x3: %x, x4: %x\n", x1, x2, x3, x4);
}

测试文件test.txt中的数据:

91h 82h 93h 94h
91h 82h 93h 94h

答案 1 :(得分:0)

如果您只是将它们读入缓冲区:

char buff[128];
(f)scanf(file, "%s", buff);

如果您将它们分为两个独立的变量:

int num;
char var;
(f)scanf("%2d%c", &num, &var);