1.printf的返回值
#include<stdio.h>
int main()
{
int a=5;
int re=printf("%d is five.",5);//执行了两件事:1.打印信息,2.给re赋值
printf("%d",re);//9是打印的信息的字节数(包括空格)
return 0;
}
//5 is five.9
2. printf打印较长的字符串
(1)使用反斜杠( \ )
#include<stdio.h>
int main()
{
printf("here id \
long string");
return 0;
}
//here is long string
(2)使用ANSIC C引入的字符串连接
#include<stdio.h>
int main()
{
printf("here id "
"long string");
return 0;
}
//here is long string
3. scanf中的普通字符
除空格字符外的普通字符必须与输入字符串严格匹配,例如
scanf("%d,%d",&n,&m);//用户输入时也必须是一个数字,一个逗号,一个数字。
4. printf()的*修饰符
如果事先不知道指定的字符宽度,可以用*表示字符宽度,后续再来进行补充。
#include<stdio.h>
int main()
{
int a=256;
int b=4;
printf("%*d",b,a);//b在这里表示字符宽度,相当于%4d
return 0;
}
5. scanf()的*修饰符
把*放在%和转换字符之间时,会使得scanf()跳过相应的输入项。
#include<stdio.h>
int main()
{
int num;
scanf("%*d %*d %d",&num,&num,&num);//输入5,6,7。最后的结果为7
printf("The number is %d",num);
return 0;
}
编程练习
1.输入 姓(Mike),名(Walet),输出:
Mike Walet
4 5
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char name[100], wename[100];
scanf("%s%s", &name, &wename);
printf("%s %s\n",name,wename );
printf("%*d %*d", strlen(name),strlen(name), strlen(wename),strlen(wename));
return 0;
}
2.输入 姓(Mike),名(Walet),输出:
Mike Walet
4 5
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char name[100], wename[100];
scanf("%s%s", &name, &wename);
printf("%s %s\n",name,wename );
printf("%d %*d", strlen(name),strlen(name), strlen(wename));
return 0;
}