/*
(1)使用scanf函数输入数据,为什么需要按下回车?-----回车可以刷新键盘缓冲区的内容。键盘缓冲区会有一个换行字符。
(2)scanf函数遇到错误输入会停止
(3)scanf函数的格式字符串中的字符分类:
1.格式声明(格式说明符)
2.空白字符(共3种,换行,空格和tab,即('\n',' ','\t'))---scanf在读操作中忽略掉1个或者多个空白符
3.非空白字符---scanf在进行读操作的时候剔除掉与这个非空白字符一样的字符
(4)在输入时空白字符起到数据间隔作用
*/
#include <stdio.h>
int main()
{
/*scanf函数注意事项(1)(2) */
char a = 'A'; //char字符类型 可以存放单个字符 单个字符要用单撇号括起来
printf("a的值为%c\n",a);
a = 'd';
printf("a的值%c\n",a);
int b;
printf("请输入b的值"); //提示信息
scanf("%d",&b); //如果正确输入b变量的值按下回车,则该句会被输出
scanf("%c",&a); //如果没有正确输入b,如输入#按下回车,则这里输出a就为一个#号字符
if(a == '\n')
printf("a是一个换行符");
printf("%c",a);
/*scanf函数注意事项(3)---2. */
int a;
scanf("%d\n",&a); //输入完变量a后,敲回车、空格、tab键都会被scanf忽略掉,只能通过一个错误的输入来结束scanf语句的运行
printf("%d\n",a);
/*scanf函数注意事项(3)--3. */
int a;
scanf("abc%der",&a); //如果想输入a的值为23,则必须输入abc23er (%d代表a的值)
printf("a的值%d\n",a);
/*scanf函数的注意事项---(4) */
int a,b;
scanf("%d%d",&a,&b);
printf("a的值是%d,b的值是%d\n",a,b); //在输入连续的整型或浮点型数据时,可以用空白字符起到间隔数据的作用
char ch1,ch2;
scanf("%c%c",&ch1,&ch2); //对于连续的字符型数据输入,它们是有能力自己间隔数据的,不必用空白符间隔,否则会得到错误的结果
printf("ch1 = %c,ch2 = %c\n",ch1,ch2);
return 0;
}
//scanf函数中不可使用#,-,m.n的格式附加字符(m,n属于自然数),可以使用域宽的格式附加字符
#include <stdio.h>
int main()
{
//用putchar和getchar将用户输入的一行信息输出到屏幕上
char ch;
while((ch = getchar()) != '\n')
{
putchar(ch);
}
return 0;
}