首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >istream& getline (istream& is,string& str);可以用于具有'\n‘的数据吗?

istream& getline (istream& is,string& str);可以用于具有'\n‘的数据吗?
EN

Stack Overflow用户
提问于 2013-08-23 13:38:49
回答 2查看 247关注 0票数 1

这里的istream& getline (istream& is, string& str);字符串在换行符之后终止。但是如果我想处理str包含2-3行的情况,那么替代方案是什么呢?

EN

回答 2

Stack Overflow用户

发布于 2013-08-23 13:58:05

您可以给出一条消息,告诉用户终止输入。

代码语言:javascript
复制
std::cout<<"Enter your message (enter finish. to terminate input)"<<endl;
while (mess != "finish.")
{
   std::getline(std::cin, mess);
   input_message += mess;

}

我希望这会有所帮助,因为它更具动态性

票数 2
EN

Stack Overflow用户

发布于 2013-08-23 13:55:18

我觉得我们可以使用一些示例输入,但此代码将从std::cin读取行,直到找不到更多的行,并将所有这些行保存到std::vector中。

代码语言:javascript
复制
#include <iostream>
#include <vector>

int main() {
    std::string line;
    std::vector<std::string> lines;

    while (std::getline(std::cin, line)) {    // iterates until exhaustion
        lines.push_back(line);
    }
    // lines[k] can be used to fetch the k'th line read, starting from index 0

    // Simply repeat the lines back, prepended with a "-->"
    for (auto line : lines) {
        std::cout << "--> " << line << '\n';
    }
}

例如,如果我输入

代码语言:javascript
复制
cat
bat
dog

我的程序输出

代码语言:javascript
复制
--> cat
--> bat
--> dog
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18395521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档