getchar() : 在32位操做系统下,读取一个字节c++
[程序1]编辑器
#include<stdio.h> main() { int c; //定义为int类型 c=getchar(); while(c!=EOF) { putchar(c); c=getchar(); } return 0; }
[程序2]操作系统
#include<stdio.h> main() { char c; //定义为char类型 c=getchar(); while(c!=EOF) { putchar(c); c=getchar(); } return 0; }
对比以上两个程序能够发现,定义变量c的地方不一样,其他都同样。
char : c/c++整型数据中比较古怪的一个,在标准中是unsigned。编辑器可实现为带符号的,也可实现为不带符号的。调试
采用中断调试能够发现,每一个字节的范围:code
程序1:[0,255]get
程序2:io
char是signed的系统中:[-127,127]class
char是unsigned的系统中:[0,127]变量
咱们能够发现,int型的范围和signed范围是等价的,而unsigned范围不能判断负数(或者是大于127的字符)。
因此综合考虑,建议使用int型,保证程序兼容性。兼容性