搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ cin.getline函数问题求助
标题:
cin.getline函数问题求助
只看楼主
bitzyh
等 级:
新手上路
帖 子:4
专家分:0
注 册:2013-4-14
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:4
cin.getline函数问题求助
#include <iostream>
using namespace std;
void main()
{
char s1[20],s2[20];
cin.getline(s1,5);
cout<<s1<<endl;
cin.getline(s2,5);
cout<<s2<<endl;
}
输入:yuyuyuyuyuyu【换行】
输出:yuyu
【换行】
问题:为什么s2的结果是换行,而不是yuyu
搜索更多相关主题的帖子:
include
namespace
2013-05-29 22:56
lintaoyn
等 级:
小飞侠
威 望:
4
帖 子:605
专家分:2489
注 册:2009-4-8
第
2
楼
得分:7
按你的提供输入第一个cin.getline(s1,5);调用 cin.fail() == true;
清下标志状态就好了。cin.clear();
#include <iostream>
using namespace std;
int main()
{
char s1[20],s2[20];
cin.getline(s1,5); //可能是因为输入的字符个数大于预期的字符个数,所以设置了 failbit
cout<<s1<<endl;
cin.clear();
cin.getline(s2,5);
cout<<s2<<endl;
}
迭代的是人,递归的是神。
2013-05-29 23:42
bitzyh
等 级:
新手上路
帖 子:4
专家分:0
注 册:2013-4-14
第
3
楼
得分:0
以下是引用
lintaoyn
在2013-5-29 23:42:36的发言:
按你的提供输入第一个cin.getline(s1,5);调用 cin.fail() == true;
清下标志状态就好了。cin.clear();
#include
using namespace std;
int main()
{
char s1[20],s2[20];
cin.getline(s1,5); //可能是因为输入的字符个数大于预期的字符个数,所以设置了 failbit
cout<
谢谢 我知道肯定是出错的 看结果就知道 我想知道的是为什么出错
2013-05-30 09:31
镜像
等 级:
论坛游民
帖 子:6
专家分:83
注 册:2013-5-27
第
4
楼
得分:7
1.首先你不知道getline(s1, 5)是怎么用的,当输入第5个字符时自动结束
2.getline遇到换行时结束且会返回换行
即你输入的前面就结束了,第二个s2相当于你输入的换行
冷静才能前进!........
2013-05-31 14:00
bitzyh
等 级:
新手上路
帖 子:4
专家分:0
注 册:2013-4-14
第
5
楼
得分:0
以下是引用
镜像
在2013-5-31 14:00:45的发言:
1.首先你不知道getline(s1, 5)是怎么用的,当输入第5个字符时自动结束
2.getline遇到换行时结束且会返回换行
即你输入的前面就结束了,第二个s2相当于你输入的换行
经过调试 不是你说的那么回事,总结出来 就一句话 无论怎样 cin.getline函数是必须要看见结束字符的,不管你限不限定字符数和结束字符
2013-06-01 14:05
5
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-412545-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.189391 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved