今天学习了《c primer plus》第四章,下面为练习代码:
#include <stdio.h>
#include <string.h>//包含了字符串的函数原型,包括strlen()
#define WORD "It is foolish name!"//预处理,定义常量,多用大写
#define WORD_K 12345678
int main()
{
int size ,letters;
char name[30];//定义一个char,为30字节的数组
printf("What's your name?/n");
scanf("%s",name);
size = sizeof name;
letters = strlen(name);
printf("%s,%s,%d %d %d %d/n",name,WORD,size,letters,sizeof(WORD),strlen(WORD));
printf("*%2d*/n",WORD_K);//printf的标志
printf("*%10d*/n",WORD_K);
printf("*%+10d*/n",WORD_K);
printf("*%-30s*/n",WORD);
return 0;
}
下面主要练习的printf的说明符修饰符的用法
#include <stdio.h>
int main(void)
{
const double RENT=3855.999;//const定义常量的方法
const double RENT_2=99;
printf("*%f*/n",RENT);
printf("*%e*/n",RENT);
printf("*%4.2f*/n",RENT);
printf("*%3.1f*/n",RENT);
printf("*%10.3f*/n",RENT);
printf("*%10.2e*/n",RENT);
printf("*%010.2f*/n",RENT);
printf("*%010f*/n",RENT);
printf("*%#f*/n",RENT);
printf("*%#x*/n",99);
printf("*%#o*/n",22);
return 0;
}
运行结果:
*3855.999000*
*3.855999e+003*
*3856.00*
*3856.0*
* 3855.999*
* 3.86e+003*
*0003856.00*
*3855.999000*
*3855.999000*
*0x63*
*026*
printf返回值写法:
#include <stdio.h>
int main(void)
{
int temperature=100;
int rv;
rv=printf("%d c is water's boiling point./n",temperature);
printf("The printf()function printed %d characters./n",rv);
return 0;
}
运行结果:
100 c is water's boiling point.
The printf()function printed 32 characters.
下面练习是利用程序来指定字段宽度
#include<stdio.h>//利用程序来指定字段宽度
int main (void)
{
unsigned width,precision;
double weight=242.5;
int number=256;
printf("What field width?/n");
scanf("%d",&width);
printf("The number is: %*d:/n",width,number);
printf("Now enter a width and a precision:/n");
scanf("%d %d",&width,&precision);
printf("Weight =%*.*f/n",width ,precision,weight);
return 0;
}