首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cin.getline()和cin.get()

使用cin.getline()和cin.get()
EN

Stack Overflow用户
提问于 2013-09-26 12:15:40
回答 1查看 2.3K关注 0票数 0

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

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

我创建了一个名为spaceStation的矢量,我想用characters.For加载它示例,这是文件的一小部分

代码语言:javascript
复制
M
4
2
//Possible comments
....
#...
E#..
#...

为此,我正确地读取了前三个字符,只需使用cin>>将其加载到一个变量中。现在,我需要创建一个循环来读取同一行中的多个字符。1)我应该忽略所有注释2)我想运行while循环,直到到达不包含更多信息的新行

我创建了一个字符串s,所以getline(cin,s)应该加载整个行。我的问题是,我是否应该创建一个cstring s,这样我就可以访问要加载的各个字符,或者有没有办法使用cin.get()来提取s接收到的行中的各个字符。

EN

回答 1

Stack Overflow用户

发布于 2013-09-26 15:46:23

代码语言:javascript
复制
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;

您还可以利用string类函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19019269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档