c++中有printf和scanf吗?还有补充里的问题
C语言里的标准函数库,C++里其实都有。所以printf和scanf都是可以在C++语言里使用的。
printf和scanf中的f指的是“format”,格式的意思,因为printf和scanf是格式化输入输出。
printf和scanf都在头文件stdio.h里,#include <stdio.h>即可,不过,除非是用C++语言编写一个与C语言严格兼容的程序,不然强烈建议使用cstdio头文件!
Tips:本来在C里面的标准函数库如果写到C++,就把.h后缀去掉,并在开头加一个c。
注:Tips的方法必须加上using namespace std;或者std::printf与std::scanf,其实C++把那些库函数自动写到了名字空间std里面,虽然大多数编译器不加也不会报错。C++标准委员会成员Nathan Myers写了一篇关于头文件策略的文章:头文件正确策略
两者区别:1.cout和cin的头文件是iostream,而不是cstdio。printf和scanf是格式化输入输出。
2.iostream是io(Input/Output,输入输出)和stream(流),所以cout和cin是输入输出流。
3.输入输出流会自动判断输入输出的数据类型,格式化输入输出要自己输入控制符。
4.输入输出流会在内存中开辟缓冲区用来存放流中内容,所以如果不关闭和stdout、stdin的同步的话,会比格式化输入输出慢很多。
格式上:
printf("%..",...);
scanf("%..",&...);
cout<<....;
cin>>...;
例如c语言的printf,scanf需要包含<stdio.h>头文件c++里面如果要用的话最好写<cstdio>。