格式化的输入scanf输出printf

格式化的输出与输入

格式化的输入: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 
void main()
{
char str[100];

scanf("%[^\n]",str);//直到输入回车键,读取才结束,当然不能超过a定义的大小,否则会出错。此命令与gets(str)效果一样。
printf("%s\n",str);
}

输密码时显示*

#include
#include
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、scanfprintf共用一个缓冲区,只有在printf后面加上scanf时,printf缓冲区的数值输出。

你可能感兴趣的:(C语言)