免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1356 | 回复: 1
打印 上一主题 下一主题

[C++] C++中getline()的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-06 19:51 |只看该作者 |倒序浏览
在Linux下用getline()有的时候不起作用,是怎么回事?调用方式为:
string str;
getline(cin, str, '\n');
在vc下用更是问题严重。用以下的方式:
istreambuf_iterator<char>; is(cin);
string str;
vector<string>; command;
for(; *is != '\n'; ++is){
    if(*is == ' '){
        command.push_back(str);
        str.resize(0);
    }
    else
        str += *is;
}
command.push_back(str);

以上两种方式都可以单独工作,但是一嵌到我的代码中就不行了。大家帮个忙,我都搞了一整天了,多谢。

论坛徽章:
0
2 [报告]
发表于 2004-06-06 21:20 |只看该作者

C++中getline()的问题

没有贴出有问题的代码,也没有描述遇到了什么问题,出现了什么现象,你想让人如何帮你?以后要注意正确描述问题。

要解决你的问题,你可以试试在getline()前面加上cin.ignore(256, '\n');一句。

你第二种从输入读取字符串的实现方式非常繁琐。其实用下面一句就解决了:

  1. copy( istream_iterator<string>;(cin), istream_iterator<string>;(), back_inserter(command) );
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP