我有这两个代码:
char a[256];
cin>>a;
cout<<a;
和
char a[256];
cin.get(a,256);cin.get();
cout<<a;
也许,相对于第二个没有 cin.get();
char a[256];
cin.get(a,256);
cout<<a;
我的问题是(第一个):对于 char 数组,我应该使用什么? cin 还是 cin.get()?我为什么要使用 cin.get();我的 char 初始化后没有参数?
我的第二个问题是:我的 c++ 老师教我每次使用 cin.get() 初始化字符,并在每次初始化 char 数组或 int 数组或只是 int 或其他任何东西之后,再次放入 cin.get();在它之后。这就是我最初想问的。
所以,现在我得到了这两个:在这种情况下,在整数初始化之后没有 cin.get(),我的程序将中断,我不能再做我的 char 初始化。
int n;
cin>>n;
char a[256];
cin.get(a,256); cin.get(); // with or without cin.get();?
cout<<a;
和正确的一个:
int n;
cin>>n; cin.get();
char a[256];
cin.get(a,256); cin.get(); // again, with or without?
cout<<a;
那么,这是怎么回事?请有人解释每个案例!谢谢你。
原文由 Ruben P 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于 char 数组,使用
cin.get()
因为它计算空白,而cin
不计算。更重要的是,cin.get()
设置要读取的最大字符数。例如:在这种情况下,您只能输入 24 个字符和一个空终止符
\0
。我希望这能回答你的第一个问题。我个人会使用字符串。