C++特有输入输出流:cin/cout (直接输入输出)
C/C++字符串输入输出:printf/scanf(格式化输入输出)
C/C++文件写入:fprintf/fwrite
C/C++单个字符输入输出: putchar/getchar(直接输入输出)
【1】cin/cout为c++特有的输入输出流。
使用实例:
int a;
cout <<"请输入一个整形数值:" << endl;
cin >> a;
cout << "打印输入一个整形数值:" << a << endl;
【2】cout 是对象,printf 是函数。printf 是 C 的东西,cout 为 C++ 特有。
cout 是 ostream 的对象,而 ostream 又是这样定义的:
typedef basic_ostream<char, char_traits<char> > ostream
即,cout 是 class basic_ostream 的以 char 特例化后的对象。
Class basic_ostream 一般还可以以宽字符 wchar_t 特例化,如下:
typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream;
所以 cout 其实还有一个宽字符版:wcout。
【3】print--是函数,可以返回一个值,只能有一个参数。用起来最简单。(C++没有)
【4】printf--是函数,把文字格式化以后输出,直接调用系统调用进行IO的,他是非缓冲的。
printf是变参函数,没有类型检查,不安全。cout是通过运算符重载实现的,安全。如果 printf碰到不认识的类型就没办法了,而cout可以自己重载进行扩展。有时候printf比 cout灵活。
int b = 100;
printf("%d\n",b);//输出十进制的数b 并换行
printf("%o\n", b);//输出无符号八进制的数b 并换行
printf可以设置输出函数的小数位数
float c = 5 / 3;//默认显示是六位小数
printf("c=%f\n", c); //默认显示六位小数
printf("c=%.3f\n", c);//显示三位小数
【5】sprintf--跟printf相似,但不打印,而是输出到一个字符串,其他的与printf一样。如: char sql[256];sprintf(sql,"select * from table where no = '%s'",bankno);它的功能 只是把" "里面的语句赋给了变量sql。
sprintf函数的功能与printf函数的功能基本一样,只是它把结果输出到指定的字符串中了
参考 https://blog.csdn.net/bat67/article/details/52063813
sprintf的定义如下:
int sprintf(char *str, const char *format, ...)
str -- 这是指向一个字符数组的指针,该数组存储了 C 字符串。
format -- 这是字符串,包含了要被写入到字符串 str 的文本。
//"test", 1, '2'输入到字符串中
char s[40];
sprintf_s(s, "%s%d%c", "test", 1, '2');//新版本要加_s
/*第一个参数就是指向要写入的那个字符串的指针,剩下的就和printf()一样了
你可以比较一下,这是向屏幕输入*/
printf("%s%d%c", "test", 1, '2');