scanf函数的用法

来源:百度知道 编辑:UC知道 时间:2024/05/26 15:03:00
#include <stdio.h>
main()
{char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar(); c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是
A)1267 B)1256
C)1278 D)1245
答案怎么得出,求具体解释

#include <stdio.h>
void main()
{
char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();
c6=getchar();

putchar(c1);
putchar(c2);

printf("%c%c\n",c5,c6);
}
/*
作为一位编程人员,指出你所写的程序中的一个问题。在书写代码时,要在半角字符下书写。不要在全角字符下写,虽然调试时可以改正,但显得自己资历浅。

首先,了解下putchar,getchar表示的意思和作用。
putchar函数(字符输出函数)的作用是向终端输出一个字符。
一般格式为:
putchar(c)

getchar函数(字符输入函数)的作用是从终端(或系统隐含指定的输入设备)输入一个字符。

****getchar函数没有参数****
一般格式为:
getchar()

当你从键盘输入123回车时,回车符也算入了字符的范围,就是c4为回车符,由于c5和c6还各自等待接受
从键盘输入的一个字符。所以在输入123回车时不会直接输出12,一直等到接受了c5和c6就依次打印出1245

注意putchar只能向终端输出一个字符,getchar只能接受一个字符,
虽然第一次输入了123和回车符,但是:

putchar(c1);
putchar(c2);

只能输出12两个字符。

虽然第二次输出了45678和回车符,
但是:

c5=getchar();
c6=getchar();