格式化的输出与输入
格式化的输入:scanf与输出printf
·对于int型
Int num;
Scanf(“%d”,&num);
·对于char型
Char ch;
Getchar();//以防出现’\n’
Scanf(“%c”,&ch);
Putchar(ch);
·对于float型
Float f_num;
Scanf(“%f”,&f_num);
·对于double型
Double d_num;
Scanf(“%lf”,&d_num);
·对于整型数组
Int a[3]; For(i=0;i<3;i++) { Scanf(“%d”,(a+i));//a[i] } For(i=0;i<3;i++) { Printf(“a[%d]=%d”,i,*(a+i));//a[i] } | Int a[3]; Int *p; *P=a; For(i=0;i<3;i++) { Scanf(“%d”,(p+i)); } For(i=0;i<3;i++) { Printf(“a[%d]=%d”,i,*(p+i)); } |
·对于char型数组
输入
Char src[100]; Gets(src);
| Char src[10]; While((ch=getchar)!=’\n’) { Src[i]=ch; i++; if(i==9) { Printf(“error\n”); Exit(1); } }src[i]=’\0’;//此程序执行效率不高,但是防止越界 |
Char src[100]; Scanf(“%s”,src); //遇到空格就结束,所以无法输入完整的句子 |
输出:Puts();
//printf(“%s”,src);
如何解决遇到空格就结束
#include <stdio.h>
void main()
{
char str[100];
scanf("%[^\n]",str);//直到输入回车键,读取才结束,当然不能超过a定义的大小,否则会出错。此命令与gets(str)效果一样。
printf("%s\n",str);
}
输密码时显示*
#include<stdio.h>
#include<conio.h>
void main()
{
char str[6]={NULL};
int i;
printf("请输入5位密码:\n");
for(i=0;i<5;i++)
{
str[i]=getch();
printf("*");
}
str[i]='\0';
printf("\n您输入的是: %s\n",str);
}
Printf为行缓冲,
printf输出的条件:
1、程序退出时,只有遇到’\n’时或输出满足一行时才执行
2、scanf与printf共用一个缓冲区,只有在printf后面加上scanf时,printf缓冲区的数值输出。