语句对比
http://blog.csdn.net/hou09tian/article/details/70045040
scanf()
遇到空格或回车都会认为是输入结束。处理多种格式的输入。
while (scanf("%d%d", &n, &e) != EOF) //每次读两个数
%c 读入一个字符
%d 读入十进制整数
%s 读入一个字符串
%f 读入一个浮点数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x 读入十六进制整数
%p 读入一个指针
%u 读入一个无符号十进制整数
%% 读%符号
附加格式说明字符表
修饰符 说明
L/l 长度修饰符 输入"长"数据
h 长度修饰符 输入"短"数据
W 整型常数 指定输入数据所占宽度
- 星号 空读一个数据
EOF: end of file
while (scanf("%17s%c", str, &check) != EOF) //前17为读为字符串,最后一位读为字符
gets()
处理字符串输入。遇到回车会认为是输入结束
gets()函数和scanf()函数都不能处理回车符。即把回车符看作再次输入的字符。
string str;
gets(str);
char str[100];
gets(str);
int i=0;
while(str[i]1='\0'){
....;
++i;
}
getline()
函数遇到回车停止读入,但是此时会屏蔽回车键。
string a, b;
getline(cin, a);//为了防止第一行是空的,不能用cin >> a,用getline(cin, a)
getline(cin, b);
getchar()
消除回车问题
效率对比
c 的输入比 c++ 快