c++ - 如何输入一个以\n为分隔符的字符串数组?

标签 c++

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i=0;
    char a[100][100];
    do { 
        cin>>a[i];
        i++;
    }while( strcmp(a[i],"\n") !=0 );


    for(int j=0;j<i;i++) 
    {
        cout<<a[i]<<endl;
    }
    return 0;
}

在这里,我想在用户按下 enter 时退出 do while 循环。但是,代码并没有退出循环。

最佳答案

以下读取一行并将其拆分为空白。这段代码不是人们通常期望初学者从头开始编写的代码。然而,在 Duckduckgo 或 Stackoverflow 上搜索会发现很多关于这个主题的变体。在编程时,要知道您可能不是第一个需要您寻求的功能的人。工程方法是找到最好的并从中学习。研究下面的代码。通过一个小示例,您将了解 getline、字符串流、迭代器、复制、back_inserter 等。多么划算!

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <vector>
int main() {

    using namespace std;
    vector<string> tokens;
    {
        string line;
        getline(cin, line);
        istringstream stream(line);
        copy(istream_iterator<string>(stream),
            istream_iterator<string>(),
            back_inserter(tokens));
    }

    for (auto s : tokens) {
        cout << s << '\n';
    }
    return 0;
}

关于c++ - 如何输入一个以\n为分隔符的字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49602418/

相关文章:

c++ - C++应用程序中数据结构的崩溃恢复

c++ - 是否可以为 exe 重新生成符号?

c++ - 为什么我的宏参数之一被替换为 ')' 而不是标识符?

c++ - 如何创建指向另一个列表中对象的指针列表?

c++ - 无法识别 GMock 宏? YCM 给我错误,但 Bazel 构建良好

C++梯形积分函数在不应该返回负数时返回

c++ - 监视守护进程的状态

c++ - 公开 std::vector 接口(interface)的任何更好的方法?

c++ - 比较 float - Google 测试框架

c++ - 填充 unordered_set 太慢