输出函数:printf(%[标志][输出最小宽度][.精度]转化说明符,变量);
输入函数scanf("%转化说明符",&变量);带[]的表示可以省略。
标志和和输出最小长度关系紧密。
标志 功能 无 右对齐,空格填充 0 右对齐。0填充 - 左对齐,空格填充
精度当然是小数点以后的位数。在实数中使用
转化符 字符 意义 c 输出单个字符,对应ASCII码 d 十进制整数 e 以指数形式输出实数 f 小数形式输出实数 g
以%f,%e中较短的输出实数 i 同d o 以八进制输出整数 s 输出字符串,遇到\0为结尾 u 以十进制输出无符号整数 x 以十六进制输出无符号整数
为什么要这么多转化说明符呢?因为不同类型的数据存储方式不同,必须让系统知道怎么去处理。
(1234的不同表示法;十进制:1234;八进制:o2322;十六进制:4D2)
该函数还支持多个变量:printf("%d%d",a,b);
后面的变量一定要是指针,为什么呢?想一下原理。系统要把输入的值给变量,只有知道地址系统才明白到底存哪里。
2者差不多。print打印,scan扫描。为什么加f呢?f是format,代表处理字符的格式。
scanf("%d,%d",&a,&b);这样输入时必须:10,10回车,也就是你的输入要和原来的格式相同。
如果是scanf("%d%d",&a,&b);则应用空格将数据隔开
注意:使用%s输入时会在字符串后加上\0所以要保证大小够。
C++的stream好用多了,不易错。因为类把我们要仔细小心的东西都记录了,我们可以轻松的cout<<"hehe";cin>>a;
这些东西并不是完全落伍了,至少这个format处理字符的方法还是被保留了下来。
在CString 中就有formt的成员函数。