#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/