avo*_*iva 0 c++ split console-application getline
我试图用逗号分隔这个字符串作为分隔符.我放了一个字符串"史密斯,鄂尔多斯,威廉",它只输出"威廉"而不是史密斯和鄂尔多斯.这里肯定有什么不对的,我看不到,有人可以帮忙吗?
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
int main() {
int numScenarios(0);
int numPapers(0);
int numWriters(0);
std::vector<std::string> paperTitles (1);
std::vector<std::string> paperAuthors (1);
std::vector<std::string> splitAuthors (1);
std::string token;
std::string input;
std::cin >> numScenarios;
std::cin >> numPapers >> numWriters;
for (int i(0); i < numPapers; ++i) {
std::getline(std::cin,input);
std::istringstream iss(input);
while(getline(iss,token,','));
{
std::cout << token << std::endl;
}
//paperTitles.push_back(input);
//input = '\0';
}
for (int i(0); i < numWriters; ++i) {
getline(std::cin,input);
paperAuthors.push_back(input);
input = '\0';
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
while(getline(iss,token,',')); // <== look closely
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |