看看这个输入和输出问题


#include <stdio.h>
#include "math.h"

int main() {
    char a, b, c;

    scanf("%c%c%c", &a, &b, &c);
    printf("%c %c %c", a, b, c);

    scanf("%c%c%c", &a, &b, &c);
    printf("%c %c %c", a, b, c);
    return 0;
}

不明白为什么输入12345678 12345 的时候都是按照一个字符存储,到输入1234的时候4被吞掉了?

你用了三个char承载,那abc接收的就是你输入的前六项,多余的会被省略

你输入1234后,肯定是输入换行了,这样printf输出了1 2 3,让你感觉4好像被吃掉了
你可以接着再输入,但换行符会被当字符接收掉。
如果你就想两次输入,那么首先应该输入123就换行,然后在第二个scanf前加getchar()来消化掉换行符。那么就可以继续输入456了

应该没问题
你是不是输入换行了,换行符也是会读取的