#include<cstdio>
#include<cstring>
int main(){
int a;
char b;
char d[10];
printf("Put a character\n");//输出的\n不影响之后字符读取
//输入 c\n
scanf("%c",&b);//此时读入的为键盘输入的 c
printf("b=%c,ascii=%d\n",b,(int)b);//输出可见为正常读取
printf("Put a number\n");//读取非此处\n
//输入 13
scanf("%d",&a);//输入时结束 输入 的标志 \n 会被下一个读取字符、字符串的函数读入
printf("a=%d",a);//输出a为数字 13 ,不加换行符输出
scanf("%c",&b);//此时输入为换行符,为上一次输入a时结束符
printf("b=%c,ascii=%d\n",b,(int)b);//ASCII=10
printf("Put a number\n");//读取非此处\n
scanf("%d",&a);
printf("a=%d",a);
b=getchar();
putchar(b);//此时换了一行,为换行符
printf("b=%c,ascii=%d\n",b,(int)b);//ASCII=10
printf("Put a number\n");//读取非此处\n
scanf("%d",&a);
printf("a=%d\n",a);
printf("Put a string\n");//读取非此处\n
scanf("%s",d);//此时不会输入上一个换行符\n
printf("%s\n",d);
printf("Put a character\n");
b=getchar();//输入为\n
printf("b1=%c,ascii=%d\n",b,(int)b);
b=getchar();//输入为下一个键盘输入字符,若同时连续输入两个字符,则
printf("b2=%c\n",b); //
char str[1000]; //
int i=0; //
char c; //
printf("Put a character c\n"); //
//以下为含空格字符串读入方法// //
c=getchar();//此处读取为换行符 在此处输入之前有输入时启用 //则此处为上次输入的第二个字符
printf("c=%c\n",c); //用于检查c的输入
printf("c=%d\n",(int)c); //显示为10,ASCII对照为换行
while((c=getchar())!='\n')
{
str[i++]=c;
printf("c=%c\n",c);
}
printf("%d\n",i);
str[i]='\0';
//若想规避输入的\n结尾,可以用getche()代替getchar()
//使用该函数需include<conio.h>,且无cconio或conio
}
运行结果如下
Put a character
c
b=c,ascii=99
Put a number
11
a=11b=
,ascii=10
Put a number
22
a=22
b=
,ascii=10
Put a number
33
a=33
Put a string
qwerty
qwerty
Put a character
b1=
,ascii=10
q
b2=q
Put a character c
c=
c=10
a
c=a
1