c语言-puts和printf和gets简单使用(面试)

文章对比了C语言中的put、printf和puts三个输出函数,详细阐述了它们的形式、输出内容、返回值和用法。put函数用于输出单个字符,printf函数提供格式化输出支持多种数据类型,puts函数则用于输出字符串并自动添加换行。示例代码展示了如何在实际编程中使用这些函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一:put函数和printf函数都是用于输出数据的函数,但它们有一些区别。

1.形式:

put函数的原型:int put(int char)
printf函数的原型:int printf(const char* format, ...)

2.输出内容:

put函数只能输出一个字符,它接受一个字符的ASCII码作为参数,并将其写入标准输出(通常是控制台屏幕)。
printf函数可以根据指定的格式字符串以及后续的参数,输出多种不同类型的数据,如字符、字符串、整数、浮点数等。

3.返回值:

put函数返回成功写入的字符,如果发生错误则返回EOF。
printf函数返回成功打印的字符数,如果发生错误则返回负值。

4.用法:

put函数的使用示例:put('A');
printf函数的使用示例:printf("Hello, %s!", "World");

综上所述,put函数用于输出单个字符,而printf函数则更为灵活,可以根据指定的格式输出多种类型的数据。在一般情况下,printf函数更常用,因为它具有更强大的输出功能。而put函数通常用于特定的需要仅输出一个字符的场景。

第二:put和puts是两个不同的函数,它们有以下区别:

1.函数原型和参数:

put函数的原型:int put(int char) 它接受一个字符的ASCII码作为参数,并将其写入标准输出(通常是控制台屏幕)。
puts函数的原型:int puts(const char* str) 它接受一个以null结尾的字符串作为参数,并将其写入标准输出,然后自动添加一个换行符。

2.输出内容:

put函数只能输出一个字符。
puts函数用于输出字符串。

3.返回值:

put函数返回成功写入的字符,如果发生错误则返回EOF。
puts函数返回一个非负整数,如果成功则返回非负整数,表示输出字符数(不包括结尾的换行符),如果发生错误则返回EOF。

4.用法:

put函数的使用示例:put('A');
puts函数的使用示例:puts("Hello, World!");

综上所述,put函数用于输出单个字符,而puts函数用于输出字符串并添加一个换行符。它们在用法和输出对象方面有所不同,需要根据具体场景选择使用。

第三:示例示范

示范1:

#include<stdio.h>
// put跟printf的区别(面试)
// 1.自动加入换行符
// 2.printf支持多种花样输出,而puts就是输出普通字符串
int main()
{
	char a; //声明一个字符a,用于存储用户的输入
	puts("请输入一个字符");
	gets(&a);   //使用gets函数读取用户的输入,并存储到a中
	
	printf("你的字符是:");
	puts(&a);//使用puts函数输出a中的内容
	
	return 0;
}

运行结果:
在这里插入图片描述解释:在这段代码中,使用&a而不是a的原因是因为gets函数需要接收一个字符指针作为参数,用于存储用户的输入。而a是一个字符变量,通过&a可以获取到a的内存地址,即字符指针。

&a是取a的地址操作符,它将返回a的内存地址。gets函数需要传入一个指向字符的指针,即指向字符数组的首地址。在这个示例中,&a即表示a所在内存的地址,它相当于一个指向字符的指针,可以满足gets函数的参数要求。

因此,使用&a可以将用户输入的内容存储到字符变量a中,并通过puts函数输出。而如果直接使用a作为参数传递给gets函数,则会导致编译错误,因为gets函数的参数要求是一个字符指针而不是字符变量。

需要注意的是,gets函数在实际开发中存在安全性问题,应该使用更安全的替代函数,如fgets。同时,使用puts函数输出字符也可以简化为直接使用putchar函数,以避免添加额外的换行符。

示范2

#include<stdio.h>
// puts跟printf的区别(面试)
// 1.自动加入换行符
// 2.printf支持多种花样输出,而puts就是输出普通字符串
int main()
{
	char c;
	puts("请输入一个字符");
	c = getchar();
	puts("你输入的字符是");
	putchar(c);
	return 0;
}

在这里插入图片描述以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值