【C语言】gets 和 puts 函数
gets 函数
scanf函数在读取字符串时遇到空格就认为读取结束,不利于读取一行字符串,gets函数就是为了解决这个问题的。
gets 函数的格式:
char *gets(char *str);
gets 函数从 STDIN 读取字符并把它们加载到str中,直到遇到 '\n'。gets 函数不会存储 '\n',而是将其翻译为空字符 '\0'。
如果成功,该函数返回 str。如果发生错误或者到达文件末尾时还未读取任何字符,则返回 NULL。
puts 函数
puts 函数的格式:
int puts(char *str);
puts 函数将 str 写入 STDOUT 中。
puts 函数只能用于输出字符串,同时多打印一个换行符。
puts(c); //等价于 printf("%s\n",c);
若字符串成功输出,则返回值为非负数,通常为0;若字符串输出失败,则返回值为 EOF,通常为-1。
举例
#include <stdio.h>
int main() {
char c[20];
gets(c);
puts(c);
return 0;
}
注意点
#include <stdio.h>
#include <stdlib.h>
int main() {
int size;
scanf("%d",&size);
char *p;
p=(char*)malloc(size);
//若不支持fflush(stdin)清空标准输入缓冲区操作
char c;
scanf("%c",&c); //清空标准输入缓冲区中的'\n'
// gets(p);
fgets(p,size,stdin); //gets被去掉是因为不安全,会访问越界
puts(p);
return 0;
}
scanf("%d",&size) 后 STDIN 会残留 '\n',需要清空 STDIN。否则 gets(p) 会读取到 '/n',从而完成不了想要的操作。
本文来自博客园,作者:hzyuan,转载请注明原文链接:https://www.cnblogs.com/hzyuan/p/17960513
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)