您的位置:首页 > 编程语言 > C语言/C++

在C语言中关于scanf()函数需要注意的一些事项

2015-07-30 17:27 363 查看
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()

{

char ch;

int data;

char A,B, C;

/*

//现象1: 先输入字符再输入数据

scanf("%c%d",&ch,&data);

printf("%c,%d\n",ch,data);

*/

/*

//当你依次按键'5'、'6'、Enter之后,

//5和6拼成了整数56,在Enter的作用下送入到data中,不接受Enter

//Enter被滞留在输入缓冲区中

//紧接着,你要求输入一个字符,

//scanf它从输入缓冲区中检测到Enter字符

//它就认为Enter是要输入的字符

scanf("%d%c", &data, &ch);

printf("%d,%c\n", data, ch);

*/

/*

//对以下代码做实验

//输入方案1:输入“ABC”,然后换行,打印

//输入方案2:输入‘A’,然后换行,输入'B'然后换行,输入'C',然后换行,打印

scanf("%c%c%c",&A,&B,&C);

printf("%c,%c,%c\n",A,B,C);

*/

/*

解决方案1:输入字符之后,就把输入缓冲区中的换行清除

不适用

*/

/*

//解决方案2: 可以解决输入方案1的结果,但是解决方案2还是无法解决

scanf("%c",&A);

getchar(); //从缓冲区里拿走一个字符

scanf("%c", &B);

getchar(); //从缓冲区里拿走一个字符

scanf("%c", &C);

getchar(); //从缓冲区里拿走一个字符

printf("%c,%c,%c\n",A,B,C);

*/

/*

//解决方案3: 可以解决输入方案1 和 输入方案2

scanf("%c\n%c\n%c",&A,&B,&C);

printf("%c,%c,%c\n", A, B, C);

*/

//解决方案4: 可以解决输入方案1和输入方案2

scanf("%c %c %c",&A,&B,&C);

printf("%c,%c,%c\n", A, B, C);

system("pause");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: