spfintf()与printf;puts与gets函数的功能与区别

/***************************************************************************************************************************
说明:1.sprintf与printf的区别
sprintf是将数据一个地方,而printf是将数据打印显示在屏幕上

2.puts于gets配对使用,同样fputs于fgets也配对使用。

注意:gets丢弃了输入换行符,但是puts会在输出的末尾添加换行符;与fputs不同的是,fputs不会在输出的末尾添加换行符,fgets保留了输入的换行符。

3.gets函数:输入一个字符串,scanf只能输入一个

*************************************************************************************************************************/

#include<stdio.h>

#define MAX 20
char * s_gets(char * st,int n);
void gets_test();

char * s_gets(char * st,int n)
{
	char *ret_val;
	int i = 0;
	//标准输入设备(键盘)
	ret_val = fgets(st,n,stdin);
	
	if(ret_val)
	{
		while(st[i]!='\n'&&st[i]!='\0')
			i++;
		if(st[i]=='\n')	//如果换行
			st[i]='\0';	//加上结束符号
		else
			while(getchar() !='\n')		//不是换行,跳出本次循环
				continue;
	}
	return ret_val;						//返回输入的字符
}
//验证gets函数
void gets_test()
{
	char words[MAX];
	gets(words);	//典型用法
	printf("gets=%s\n",words);
	puts(words);
}

int main(void)
{
	
	char first[MAX];
	char last[MAX];
	char formal[2*MAX+10];
	double prize;
	
	gets_test();
	
	puts("Enter your first name:");
	s_gets(first,MAX);
	
	puts("Enter your last name:");
	s_gets(last,MAX);
	
	puts("Enter your prize money:");
	scanf("%lf",&prize);
	//将last,first,prize的值输入到formal中
	sprintf(formal,"%s,%-19s:$%6.2f\n",last,first,prize);		
	puts(formal);
	
	return 0;
	
}

















猜你喜欢

转载自blog.csdn.net/dynastydoubleh/article/details/81054109
今日推荐