?
?
scanf 与 cin 都是 C/C++ 中常用来输入的工具. 以下是关于它们各自的优缺点
?
?
?
?
?
?
?
?
?
?
?
**scanf 在已经输入一个字符或数字后遇到空白符 (如空格, 回车, tab 等) 会直接结束读取. **
如果 scanf 读取时超出了格式化输入的范围, 那么超出范围的那部分数据就会留在缓冲区, 要是后面还有一个 scanf 的话则它会将缓冲区的数据进行读取. 还有, 如果 scanf 读取时遇到了空白符, 而后面还有东西没有读取, 同样会把它们留在缓冲区. 想解决这个问题就需要清空缓冲区
scanf 输入完毕后会将 ‘\n‘ 也读取进来
scanf 的输入可以设置字符宽度, 意义在于选择输出. 例如
?
#include <cstdio>
using namespace std;
int main(void)
{
char x[40];
scanf("%4s", x); /*只读取前四个字符*/
printf("%s\n", x); /*只输出了四个字符*/
return 0;
}
?
?
?
?
?
在字符串处理上面 cin 更方便, 在数字处理上面 scanf 更甚一筹. 但无奈 cin 速度较慢, 否则 cin 在使用体验上完全能取代漏洞较多的 scanf.* scanf 与 cin
?
?
scanf 与 cin 都是 C/C++ 中常用来输入的工具. 以下是关于它们各自的优缺点
?
?
?
?
?
?
?
?
?
?
?
**scanf 在已经输入一个字符或数字后遇到空白符 (如空格, 回车, tab 等) 会直接结束读取. **
如果 scanf 读取时超出了格式化输入的范围, 那么超出范围的那部分数据就会留在缓冲区, 要是后面还有一个 scanf 的话则它会将缓冲区的数据进行读取. 还有, 如果 scanf 读取时遇到了空白符, 而后面还有东西没有读取, 同样会把它们留在缓冲区. 想解决这个问题就需要清空缓冲区
scanf 输入完毕后会将 ‘\n‘ 也读取进来
scanf 的输入可以设置字符宽度, 意义在于选择输出. 例如
?
#include <cstdio>
using namespace std;
int main(void)
{
char x[40];
scanf("%4s", x); /*只读取前四个字符*/
printf("%s\n", x); /*只输出了四个字符*/
return 0;
}
?
?
?
?
?
在字符串处理上面 cin 更方便, 在数字处理上面 scanf 更甚一筹. 但无奈 cin 速度较慢, 否则 cin 在使用体验上完全能取代漏洞较多的 scanf.
原文:https://www.cnblogs.com/ICeVe/p/14503331.html