C++获取线和CIN阅读
C++ getline and cin reading
#include <iostream>
using namespace std;
int main()
{
int N;
int T;
cin>>N;
struct key {
std::string namek;
int szam;
int szat;
std::string kol;
};
key kert[N];
for (int i=0; i<N; i++) {
int k=i;
cin.ignore(100, ' ');
getline(cin, kert[k].namek);
cin>>kert[k].szam;
cin.ignore(100,' ');
cin>>kert[k].szat;
cin.ignore(100, ' ');
getline(cin, kert[i].kol);
}
for (int i=0; i<N; i++) {
int k=i;
cout<<kert[i].namek;
}
我想读入"kert"结构,但我的程序只读入 kert[0] 然后返回。我不知道我在哪里搞砸了,因为我用 getline 作为字符串,用 cin 做整数。我知道 cin 将""留在缓冲区中并尝试在 cin 之后读取虚拟字符,我也尝试了 cin.ignore (如代码中所示),但没有任何帮助。我哪里搞砸了?
我做了一些游戏,更改忽略允许我在kert中输出所有名称。现在忽略者寻找结束线字符,并且只是为了抵消 cin。
#include <iostream>
using namespace std;
int main()
{
int N;
cin>>N;
struct key {
std::string namek;
int szam;
int szat;
std::string kol;
};
key kert[N];
cin.ignore(100, 'n');
for (int i=0; i<N; i++) {
getline(cin, kert[i].namek);
cin>>kert[i].szam;
cin>>kert[i].szat;
cin.ignore(100, 'n');
getline(cin, kert[i].kol);
}
for (int i=0; i<N; i++) {
cout<<endl<<kert[i].namek<<endl;
}
return 0;
}
相关文章:
- 循环后如何继续阅读
- 用c++阅读音频
- C++中的cin.ignore()函数不适用于整个流
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- Problems with std::cin.fail()
- 由cin中的字符串中未捕获空白引起的分割错误
- 在C++中使用Cin,我如何在1行中输入
- 将 cin 限制为只有一个
- cin >> int 给定一个字符串将 int 赋值为 0
- istream std::cin如何修改自定义istream缓冲区
- C++ 将 CIN 值存储到任何类型的数组中
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- 如何从QFile阅读?它显示该文件不可访问
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 为什么当我从 cin 阅读时转义字符不起作用?
- 如何使用cin继续阅读,直到达到空白行
- 如何在C++中一一阅读 CIN?元素类型不同
- C++获取线和CIN阅读
- 告诉cin停止在newline阅读
- 使用cin以特定格式阅读