在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;
}
#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;
}
相关文章推荐
- C++生成全局唯一Guid
- C++--String类型各种重载函数的实现
- C++如何实现DNS域名解析
- C++ 字符串
- C++中的RAII机制
- 【总结】关于C++虚函数、多态和对象切割
- C++内部数据类型和非内部数据类型
- 设计模式C++实现(3)——适配器模式
- 为什么在C语言中 3<x<5无论x取什么值,最终结果都为1
- 如何验证C语言中小数默认是double类型
- 在C语言中如何确定一个数的溢出值是多少?
- A*寻路算法C++简单实现
- 不能将参数 2 从“TCHAR *”转换为“const char *”
- 设计模式C++实现(2)——策略模式
- 正方形计数问题(穷举+pair+struct/C++)
- 设计模式C++实现(1)——工厂模式
- C++类里面的const
- c++中size_type和size_t的关系
- C++ using关键字作用 (重载父类函数)
- C语言命令行参数识别