C++ 使用cin.getline()和cin.get()

C++ 使用cin.getline()和cin.get(),c++,string,cin,C++,String,Cin,我在理解如何使用cin.getline和cin.get时遇到一些问题。我相信我理解这个问题,只是想弄清楚如何结合使用它们来解决问题 我从一个文本文件中读取,该文件通过命令行通过cin读取 我创建了一个名为spaceStation的向量向量,我想用字符加载它 M 4 2 //Possible comments .... #... E#.. #... 为此,我仅使用cin>>将前三个字符正确读入变量。现在我需要创建一个循环来读取同一行中的多个字符。1) 我应该忽略所有注释2)我想运行while循环

我在理解如何使用cin.getline和cin.get时遇到一些问题。我相信我理解这个问题,只是想弄清楚如何结合使用它们来解决问题

我从一个文本文件中读取,该文件通过命令行通过cin读取

我创建了一个名为spaceStation的向量向量,我想用字符加载它

M
4
2
//Possible comments
....
#...
E#..
#...
为此,我仅使用cin>>将前三个字符正确读入变量。现在我需要创建一个循环来读取同一行中的多个字符。1) 我应该忽略所有注释2)我想运行while循环,直到到达一个不包含更多信息的新行

我创建了一个字符串s,因此getline(cin,s)应该加载整个行。我的问题是,我应该创建一个cstring s以便访问要加载的单个字符,还是有办法使用cin.get()提取s接收到的行的单个字符。

string s;
string s;
vector<string> v; // this is the best choice you can iterate like this to get char by char:

for (int i=0;i<v.size();i++)
    for (int j=0;j<v[i].size();j++)
        v[i][j];

// or like this to get strings
for (int i=0;i<v.size();i++)
    v[i];

getline(cin, s); // this is to read the \n (new line) after int in the 3rd line
while (getline(cin,s))// till end of file
{
    if (s.find_first_not_of(".#E") == -1)
    {
        v.push_back(s);
    }
}

for (int i=0;i<v.size();i++)
        cout<<v[i]<<endl;
向量v;//这是您可以这样迭代以逐字符获取字符的最佳选择:
对于(int i=0;i
std::getline
读入
std::string
,并且从
std::string
中可以逐个访问每个字符。请参见例如,“cppreference”和“cplusplus”站点都提供了非常方便的参考,例如,我的回答对您有好处吗?