C++中怎样在输入流中区别int类型和字符类型?(进一步的问题,有补充浮点数的情况)
在实际测试中,使用
2、只有在输入完数据再按回车键后,该行数据才被送入内存上的键盘缓冲区里,形成输入流。
而在输入完数据再按回车键后,该行数据才被送入内存上的键盘缓冲区里这一工作是由键盘驱动程序来完成的,即键盘驱动程序(编程设计该程序时)是以回车键为标志符将暂存在键盘这个输入设备的缓存器(属于键盘这个硬件设备的一部分)里的输入数据送入内存上的键盘缓冲区里,编程设计该程序时文件结束符是作为一个普通字符对待的,未将其作为啥标志符的作用,所以键盘驱动程序遇到文件结束符输入时不会像回车键输入那样发生将暂存在键盘这个输入设备的缓存器(属于键盘这个硬件设备的一部分)里的输入数据送入内存上的键盘缓冲区里的情况。而像
从键盘输入4个9以内的数字字符,将其转换为4位十进制数后显示出来。
/*分析:⑴将每个数字字符c变成对应的数字,即将以ASCII码表示的数字字符变成一位十进制数,方法为:c-'0',如c='8'时,c-'0'=8。转换中若遇非'0'~'9'字符则结束转换。
⑵将每次变换的一位十进制数,从高位开始,按位加权,变成多位的十进制数,放在变量data中。如输入1,2,3,4,则结果应是按%d格式显示的1234。
*/
#include "stdafx.h"
#include"stdio.h"
int main(int argc, char* argv[])
{
char c;
int i,data=0;
printf("Input char:");
for(i=0;i<4;i++)
{
c=getchar();//输入一数字字符。
if(c<'0'||c>'9')//判断输入字符是否在'0'~'9'范围内。
break;
data=data*10+c-'0';//计算当前数据值。
}
printf("data=%d/n",data);
return 0;
}
参考:http://www.xuebuyuan.com/1854888.html
=========================================================
在实际测试中,使用