Dht~0
2018-12-31 14:17
采纳率: 100%
浏览 558

如何用简短的代码写出string为空就跳出循环,请好心大佬指点。。

#include <iostream>
#include <string>
using namespace std;
void strcount(const string);
int main()
{
    string input;
    cout<<"enter a line:"<<endl;
    cin>>input;
    while(!input.empty())
    {
        while(cin.get()!='\n') continue;
        strcount(input);
        cout<<"enter next line (empty line to quit):"<<endl;
        cin>>input;
    }
    cout<<"bye"<<endl;
    return 0;
}
void strcount(const string str)
{
    static int total=0;
    int count=0;
    cout<<"\""<<str<<"\"contains ";
    count=str.length();
    total+=count;
    cout<<count<<"characters"<<endl;
    cout<<total<<"characters total"<<endl;
}

如何能用简短的语句达到输入为空就跳出循环呢...执行完一次以后我敲回车只是光标换行,如何能将string类的对象设置为空?我用C-free和DEV都试过了都是这个样子图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • Dht~0 2018-12-31 11:22
    已采纳

    经过本菜叽不懈研究,发现了如果用cin是怼不进去输入缓冲区队首的空格以及回车的,需要用getline才行所有问题解决了

    点赞 评论
  • kuangbao9 2018-12-31 06:57

    while(!input.empty())
    {
    while(cin.get()!='\n') continue;
    strcount(input);
    cout<<"enter next line (empty line to quit):"<<endl;

        if(getchar() == '\n')
            break;
    
        cin>>input;
    
    }
        改成这样试试?
    
    点赞 评论

相关推荐 更多相似问题