百科狗-知识改变命运!
--

puts/gets 和 scanf/printf 用法上的区别...

百变鹏仔1年前 (2023-12-23)阅读数 8#综合百科
文章标签字符字符串

一、调用形式不同

gets()函数实现字符串的输入,其调用形式为:gets(字符数组);

调用puts()函数实现字符串的输出,其调用形式为:puts(字符数组);

二、格式

scanf语句的一般格式如下:

scanf("格式字符串", 地址,?);

printf语句的一般形式如下:

printf( "格式字符串", 表达式, ... );

该语句将"表达式"按照"格式字符串"给定的格式,显示在屏幕上。"格式字符串"包括文本字符、转义字符和格式说明符。

三、结束方式

使用scanf("%s",?&s)函数输入字符串时存在一个问题,?就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理,?但gets()?函数将接收输入的整个字符串直到回车为止。?

C语言中回车,换行,空字符与空格:fgets和gets在读取换行符的区别

摘要:C语言中,我们常常从终端输入,并且输出到终端,键盘上的回车,输入到缓冲区以后,变成了什么字符?是‘\0’还是‘\n’?回车与换行有什么区别?本文主要为你讲解C语言中的换行、回车等控制字符,帮助区别它们的实质。

1.空格

它的ASCII码为0x20,而不是0x00。其中,gets可以读入空格字符。

2.回车(\r)

这里有一个很重要的区分点:回车符号和回车键。

回车(‘\r’)效果是输出回到本行行首,结果可能会将这一行之前的输出覆盖掉。例如执行:

puts("hello world!\rxxx");

在终端输出的是:

xxxlo world!

如果将上面的字符串写入文件中,例如执行:

char *s = "hello world!\rxxx";

FILE *str = fopen("t.txt","r");

fwrite(s, 16, 1, str);

用文本编辑器打开t.txt。显示的效果将由打开的编辑器所决定。

vi的效果为

windows记事本效果为

可以看到,vi将\t用^M代替,而记事本就没有显示该字符。

3.回车键

关于“回车键”的来历,还得从机械英文打字机说起。在机械英文打字机上,有一个部件叫“字车”,每打一个单词,“字车”就前进一格。当打满一行字符后,打字者就得推动“字车”到起始位置,这时打字机会有两个动作响应:一是“字车”被归位,二是滚筒上卷一行,以便开始输入下一行,这个推动“字车”的动作叫“回车”。后来,在电动英文打字机上,人们增加了一个直接起“回车”作用的键。这个新增的键就被称为“回车键”。

回车的ASCII代码

16进制是“0x0d”

10进制是“13”

在某些语言中可以用"\r"表示。

不同的操作系统对回车的处理是不同的:

在Unix/Linux系统中,换行用"\n"一个字符表示,

而在Windows系统中,则用"\n\r"两个字符表示。

4.换行(\n)10

puts/gets 和 scanf/printf 用法上的区别...

如果要实现换行的效果,在终端我们只需要使用'\n'即可;如果要想在win系统下的文本中实现换行的效果,需要使用‘\n\r’两个控制字符

5.C语言对于字符串的处理

首先,回车键按下以后,键盘缓冲区中存放的是字符\n,如果我们用getchar,那么我们读入的是字符“\n”;如果我们使用gets进行读取,那么“\n”将被作为表示的结束的控制字符读取。然后,gets会自动把这个\n转换成'\0'存储在字符串中。

另外,如果从终端读取一个字符串,gets会把最后的换行符\n换成\0,而fgets从stdin读入的时候,不会对\n进行处理。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)