VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 189|回复: 3

求助,关于while(getline())

[复制链接]
01_avatar_middle
最佳答案
0 
在线会员 发表于 2021-8-25 14:21:01 | 显示全部楼层 |阅读模式
运行了一个在一行字符串中按空格拆分单词的程序,但在输入中跳不出while的循环,
在网上找了好几种方法,Ctrl+z,Ctrl+d都不行。。。哪位大佬帮我看看,跪谢!!!


下面是源码:
#include<iostream>
#include<vector>
#include<iomanip>
#include<string>
#include<math.h>
#include<cctype>
vector<string> split(const string& s)
{
        vector<string> ret;
        typedef string::size_type string_size;
        string_size i = 0;

        while (i != s.size())
        {
                while (i != s.size() && isspace(s))
                        i++;
                string_size j = i;
                while (j == s.size() && !isspace(s[j]))
                {
                        ret.push_back(s.substr(i, j - 1));
                        i = j;
                }
        }
        return ret;
}

int main()
{
        string s;
        while (getline(cin, s))    //这里在调试的时候总是跳不出循环。。。
        {
                vector<string> v = split(s);
                for (vector<string>::size_type i = 0; i != v.size(); ++i)
                        cout << v << endl;
        }
        return 0;
}





上一篇:求助 怎么编写自动查找串口连接的硬件设备的方法
下一篇:构造函数初始化属性与直接初始化属性区别?(代码在里面)
01_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-8-25 16:56:03 | 显示全部楼层
本帖最后由 refugeee 于 2021-8-25 16:57 编辑

已解决。
isspace()里面忘记写索引了。
31_avatar_middle
最佳答案
0 
在线会员 发表于 2021-8-25 14:24:15 | 显示全部楼层
建议写个if+break
01_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-8-25 17:05:39 | 显示全部楼层

是isspace索引的问题,多谢回复
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-9-27 05:24

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表