|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ scanf输入字符串遇到空格就退出?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
18296
人关注过本帖
标题:
scanf输入字符串遇到空格就退出?
只看楼主
加入收藏
michaelyj
来 自:上海
等 级:
新手上路
帖 子:55
专家分:0
注 册:2009-10-27
结帖率:
88.24%
楼主
收藏
问题点数:0 回复次数:5
scanf输入字符串遇到空格就退出?
#include <stdio.h>
int main(void)
{
char name[40];
printf("what's your name?");
scanf("%s", name);
printf("%s,hello boy", name);
getchar();
getchar();
return 0;
}
输入一个单词没问题
输入两个单词无论加入多少个getchar()都会弹出?
请告诉我是什么“道理”
搜索更多相关主题的帖子:
scanf
字符
输入
空格
2010-01-25 16:47
举报帖子
使用道具
赠送鲜花
h978147355
等 级:
论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
第
2
楼
收藏
得分:0
scanf读取时 是遇到空格就停止读取
也就是说 如果你键入得是harry potter 那么实际上scanf只能获取harry这个单词 后面的“
potter”会在停在输入流中
那么你就要最少要加9个getchar(一个空格 6个单词字母 一个换行符还有一个待输入光标)才能看到运行结果
2010-01-25 17:08
举报帖子
使用道具
赠送鲜花
a573511106
等 级:
论坛游民
帖 子:20
专家分:18
注 册:2010-1-24
第
3
楼
收藏
得分:0
用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。
为了避免这种情况,可多设几个字符数组分段存放含空格的串。
2010-01-26 13:08
举报帖子
使用道具
赠送鲜花
human84
来 自:哈尔滨 / 重庆
等 级:
论坛游侠
帖 子:154
专家分:141
注 册:2009-11-1
第
4
楼
收藏
得分:0
scanf就那样,用gets()就好了。
2010-01-27 12:10
举报帖子
使用道具
赠送鲜花
doubleflygo
等 级:
论坛游民
帖 子:26
专家分:50
注 册:2010-1-22
第
5
楼
收藏
得分:0
想知道谁在起作用很简单,因为你输入几个单词的时候,发现只有第一个单词能够显示出来,猜想scanf(%s)提取字符窜的条件是Enter(换行--输入结束)或者Space(空格),而且还可以做个极端的测试,就你一开始只输入换行或者空格,发现程序永远不会执行printf,而只要我们输入一窜连续字符+一个空格之后,不论我们输入什么,Enter之后,printf执行完之后都是一开始的一窜连续字符,因此我们还可以知道,scanf(%s)提取完成的语句格式是一开始遇到的一连窜字符;而由于执行getchar(),之前printf输出的是scanf所提取的字符窜,而之后的字符或者空格包括回车将会被getchar()调用,其实你的程序两个getchar()的作用只相当于一个getchar()的作用,因为第一个只不过读取的是回车符,也就是你输入一个字符窜之后的回车键而已;因此当你输入几个用空格隔开的字符窜的时候,无用的getchar()的个数应该等于(回车数)1+n1(空格数)+n2(除第一个连续有形字符窜的其他字符数);所以当你输入两个甚至几个名字的时候,getchar()是远远不够用的;
2010-01-29 08:35
举报帖子
使用道具
赠送鲜花
少林小和尚
等 级:
论坛游民
帖 子:57
专家分:26
注 册:2013-3-31
第
6
楼
收藏
得分:0
scanf的结束标志是空格喝回车键,而gets的结束标志为回车键,输入字符串时,一般采用gets。楼上的大神讲的很好。。
2013-05-16 21:24
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
scanf输入字符串遇到空格就退出?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016151 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved