Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用getline c+;将每一行输入存储在一个数组中+;_C++_Arrays_Dynamic_Input_Getline - Fatal编程技术网

C++ 使用getline c+;将每一行输入存储在一个数组中+;

C++ 使用getline c+;将每一行输入存储在一个数组中+;,c++,arrays,dynamic,input,getline,C++,Arrays,Dynamic,Input,Getline,我使用getline获取输入,我想将每一行输入存储到一个数组中,这样我就可以调用特定的数组内容进行进一步处理。有什么想法吗?提前谢谢 string line; while (true) { getline(cin, line); if (line.empty()) { break; } // code } 编辑/添加 有人知道为什么我不能在while循环之前使用cin?例如,当我把 cin>>var1在循环之前,它根本不会进入循环内部 回

我使用getline获取输入,我想将每一行输入存储到一个数组中,这样我就可以调用特定的数组内容进行进一步处理。有什么想法吗?提前谢谢

string line;

while (true) {

    getline(cin, line);

    if (line.empty()) {
        break;
    }
    // code

}
编辑/添加

有人知道为什么我不能在while循环之前使用
cin
?例如,当我把
cin>>var1在循环之前,它根本不会进入循环内部

回答我自己


我发现它解决了

最简单的解决方案是使用向量容器:

 std::vector<std::string> arr;

最简单的解决方案是使用向量容器:

 std::vector<std::string> arr;

最简单的解决方案是使用向量容器:

 std::vector<std::string> arr;

最简单的解决方案是使用向量容器:

 std::vector<std::string> arr;
使用
向量向量向量机

从文件中读取的更好方法如下

string line;

while (getline(cin, line)) {

if (line.empty()) {
    break;
}
vec.push_back(line);
// code

}
一旦达到EOF,循环将中断…

使用
向量向量向量

从文件中读取的更好方法如下

string line;

while (getline(cin, line)) {

if (line.empty()) {
    break;
}
vec.push_back(line);
// code

}
一旦达到EOF,循环将中断…

使用
向量向量向量

从文件中读取的更好方法如下

string line;

while (getline(cin, line)) {

if (line.empty()) {
    break;
}
vec.push_back(line);
// code

}
一旦达到EOF,循环将中断…

使用
向量向量向量

从文件中读取的更好方法如下

string line;

while (getline(cin, line)) {

if (line.empty()) {
    break;
}
vec.push_back(line);
// code

}


一旦达到EOF,循环将中断…

std::vector
是您的朋友。顺便问一下,您真的想在第一个空行上完全停止处理输入吗?还是忽略这句话?另外,我建议将
getline
移动到循环条件中,以便您阅读并立即检查它是否成功:
while(std::getline(std::cine,line)){…}
。是的,只要用户给出输入,我就想得到输入,然后用空行向程序发出信号,表示没有更多输入,除了在用户输入最后一个输入时提示用户按enter键两次之外,我想不出更好的方法了…
std::vector
是您的朋友。顺便问一下,您真的想在第一个空行上完全停止处理输入吗?还是忽略这句话?另外,我建议将
getline
移动到循环条件中,以便您阅读并立即检查它是否成功:
while(std::getline(std::cine,line)){…}
。是的,只要用户给出输入,我就想得到输入,然后用空行向程序发出信号,表示没有更多输入,除了在用户输入最后一个输入时提示用户按enter键两次之外,我想不出更好的方法了…
std::vector
是您的朋友。顺便问一下,您真的想在第一个空行上完全停止处理输入吗?还是忽略这句话?另外,我建议将
getline
移动到循环条件中,以便您阅读并立即检查它是否成功:
while(std::getline(std::cine,line)){…}
。是的,只要用户给出输入,我就想得到输入,然后用空行向程序发出信号,表示没有更多输入,除了在用户输入最后一个输入时提示用户按enter键两次之外,我想不出更好的方法了…
std::vector
是您的朋友。顺便问一下,您真的想在第一个空行上完全停止处理输入吗?还是忽略这句话?另外,我建议将
getline
移动到循环条件中,以便您阅读并立即检查它是否成功:
while(std::getline(std::cine,line)){…}
。是的,只要用户给出输入,我就想得到输入,然后用空行向程序发出信号,表示没有更多输入,我想不出比在用户输入最后一次输入时提示用户按enter键两次更好的方法了……太好了!谢谢大家的回答,我只是想了解一下std::vector的窍门。假设将getline输入存储到vec后,我想将某些字符串(vec[0]等)转换为int或double,这可以在vec中完成,还是必须初始化新的变量或向量?谢谢不,vector
stringstream
内无法完成的转换非常方便。请检查,谢谢,我会查看并让您知道;)我想我应该使用
intvar1=atoi(vec[0]),而不是使用stringstream
int var1=atoi(向量为[0])但是它们都不起作用…有什么想法吗?这里写的是为了避免像“谢谢”这样的评论,但是。。你这个哈迪斯大人!!祝你今天愉快伟大的谢谢大家的回答,我只是想了解一下std::vector的窍门。假设将getline输入存储到vec后,我想将某些字符串(vec[0]等)转换为int或double,这可以在vec中完成,还是必须初始化新的变量或向量?谢谢不,vector
stringstream
内无法完成的转换非常方便。请检查,谢谢,我会查看并让您知道;)我想我应该使用
intvar1=atoi(vec[0]),而不是使用stringstream
int var1=atoi(向量为[0])但是它们都不起作用…有什么想法吗?这里写的是为了避免像“谢谢”这样的评论,但是。。你这个哈迪斯大人!!祝你今天愉快伟大的谢谢大家的回答,我只是想了解一下std::vector的窍门。假设将getline输入存储到vec后,我想将某些字符串(vec[0]等)转换为int或double,这可以在vec中完成,还是必须初始化新的变量或向量?谢谢不,vector
stringstream
内无法完成的转换非常方便。请检查,谢谢,我会查看并让您知道;)我想我应该使用
intvar1=atoi(vec[0]),而不是使用stringstream
int var1=atoi(向量为[0])但是它们都不起作用…有什么想法吗?这里写的是为了避免像“谢谢”这样的评论,但是。。你这个哈迪斯大人!!祝你今天愉快伟大的谢谢大家的回答,我只是想了解一下std::vector的窍门。假设在存储getline输入之后