| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 894 人关注过本帖, 2 人收藏
标题:学了两个月的C语言,看到论坛里有好多关于 scanf ,gets,getch,puts,get ...
只看楼主 加入收藏
wswit
Rank: 1
等 级:新手上路
帖 子:9
专家分:6
注 册:2014-5-27
结帖率:100%
收藏(2)
已结贴  问题点数:20 回复次数:10 
学了两个月的C语言,看到论坛里有好多关于 scanf ,gets,getch,puts,getchar,putchar 用法的帖子,回复的也参差不齐,大致总结了
学了两个月的C语言,看到论坛里有好多关于scanf ,gets,getch,puts,getchar,putchar用法的帖子,回复的也参差不齐,大致总结了一下,初次发帖,希望大家多多指教!
这几类函数都是常用的输入输出函数,其中输入函数是scanf,gets,getch,getchar;输出函数为puts,putchar,此外还有printf。
首先说一下每个函数的功能吧!
scanf:当输入的信息为数据时,结束的标志为:
        1.格式输出字符串之间的分隔符,使用默认的分隔符即为空格Tab键或者是回车键
        2.当遇到指定宽度时和非法输入。
       当输入信息以%c输入时,空格和转义字符都为合法字符,结束标志为tab,回车键。
gets:作用输入一个字符串到指定的字符数组,输入时用回车键结束,并且系统在最后自动追加‘\0’。
getch:只是输入设备读取一个字符,不必用回车,不在屏幕上显示。
putchar:输入一个字符,putchar(c),c为整数时,则返回整数代表的ASCLL码值。
getchar:使用此函数时,显示键入的一个字符,并且回车键结束。
puts:输出字符数组的字符串输出。
其中,putchar,getchar,getch都是针对一个字符的函数,这些只是输入输出一个字符而已。(个人认为是这样,大神请多多指点!)
puts,就是一个输出函数,输出数组中的所有元素,省去了用循环的方法输出数组的方法。
主要要区别:scanf,gets,这两个函数都是可以输入单个字符和字符串的,输入字符串是针对数组,首先要定义数组,scanf输入字符串,以%s的形式输入,但是这时空格将作为结束标志,所以如果想要输入带空格字符串,就要多申请几个数组存放。这里数组要留出一个空间存放‘\0’。gets函数解决了scanf以%s输入时空格的问题,就是不用申请多个数组存放,它认为空格为合法的输入字符,遇到回车结束。
        (据说这里边有个漏洞,就是可以无限的输入,直至数据存满内存,电脑崩溃,还有人利用了这个漏洞制造了病毒……)

第一次发帖,总结不全,也有不准确的地方,希望大家多多建议!
搜索更多相关主题的帖子: 信息 字符串 C语言 
2014-09-21 09:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
这种总结没多大用处,不属于C语言的范畴。

授人以渔,不授人以鱼。
2014-09-21 09:46
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:3 
1.puts()函数输出时将结束字符'\0'转化为'\n'并输出。

2.scanf()函数也可以从输入设备读入带空格的字符串,比如:
scanf("%[^\n]",str);
此外,若连续使用scanf()函数,当心残留的\n会被使用,可以用:
scanf("%d%*c",&i);

只是一点小技巧,平时多留意下就行

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-21 10:41
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:2 
学习了

梦想拥有一台龙芯3A-4000
2014-09-21 11:57
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:5 
简单说说:新手对于用Scanf 时 一个是里面出现一些,字符或者‘空格 ' 字符,更有出现'\n'字符的
          在scanf里面的参数呢 正确是写 &a,新手往往写成a
          float型和double型的,应该是%f,%lf 新手往往忽略
2014-09-21 12:20
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:2 
楼主好细心呀,善于总结有利于学习

想抽苏烟了。
2014-09-21 13:43
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:4 
gets函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

百科如是说
2014-09-22 09:28
lu_xinzhou
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2014-8-11
收藏
得分:2 
学到了
2014-09-22 16:20
wswit
Rank: 1
等 级:新手上路
帖 子:9
专家分:6
注 册:2014-5-27
收藏
得分:0 
回复 3 楼 wssy213
谢谢指教!
2014-09-23 13:08
qq934212940
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-17
收藏
得分:0 
受教
2017-06-17 13:04
快速回复:学了两个月的C语言,看到论坛里有好多关于 scanf ,gets,getch,puts ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016242 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved