我是要成为嵌入式攻城狮的男人!
来吧,linux。
环境gcc。
1 遇到一个尴尬的问题,简直无语,本来不想写的,不好形容,网上找了半天无意中看到有朋友提了一句才明白。是这样,在调用scanf函数的时候,比如说XX程序我先printf("type in the r:");然后scanf("%d ",&r);什么意思呢,我的想法是这样的,
我在输入一个r之后换一行输出结果,是不是要加一个 ?那么问题来了,这样做的后果是输入两次,且就第一次有效。
2 养成程序最后printf(" ");的习惯。不然看着怪怪的。
3 复合赋值运算,如value+=1;对于简单表达式来说程序运行速度没多大提高,但如果表达式里有函数返回值,那么函数少调用一次。
4 printf函数的格式字符:
d、i 以带符号的十进制形式输出整数(整数不输出符号)
o 以八进制无符号形式输出整数
x,X 以十六进制无符号形式输出整数,用x时输出十六进制数的a~f时以小写形式输出,用X是大写(显示出来的时候数字前面是没有0x的)
u 以无符号十进制形式输出整数
c 以字符形式输出一个字符
s 输出字符串
f 以小数形式输出
e,E 以指数形式输出实数,e,E同x,X
g,G 选用%f和%e中输出宽度较短的一种格式不输出无意义的0,若以指数形式输出,则指数以大写表示。(显示出来怎么短怎么选,无意义的0是指会自动指定小数点后几位,最后的0都会去掉)
printf附加格式说明字符:
l 长整型
m 数据最小宽度(m是一个整数)
n 对实数表示输出n个小数;对字符串表示截取的字符个数
- 输出的数字或字符在域内向左靠(如m大于实际字符数不加-输出字符前会以空格填补40,加-就从左边第一个开始输出了啊)
scanf格式字符基本一样
scanf怎样把输入的内容分别保存至多个指定变量中呢?scanf函数使用空白字符来分隔输入的数据,包括空格、换行、制表符(tab)。