> string直接cin >> 在一个字符数组中本来就不不正确的做法,你输入了abcd可以输出abcd而不出问题只是因为你覆盖了栈的一部分局部变量缓冲区,你试试多输入几个字符试试?这样做非常危险,之所以允许你这" />

char a[100]={"hello world "} 就是一个字符数组
int [2]={1,2}
因为你使用cin >> string直接cin >> 在一个字符数组中本来就不不正确的做法,你输入了abcd可以输出abcd而不出问题只是因为你覆盖了栈的一部分局部变量缓冲区,你试试多输入几个字符试试?
这样做非常危险,之所以允许你这样做是因为C++非常灵活,(公路两旁不设栏杆,有时候你的确可以离开公路开到你想去的地方,但如果你酒后驾车呢?)
所以不是特殊情况应使用cin.get(string, sizeof(string)) 或 cin.getline(string, sizeof(string)),或使用更快速和安全的string类:
#include <string>
string str;
cin >> str;
...
因为你使用cin >> string直接cin >> 在一个字符数组中本来就不不正确的做法,你输入了abcd可以输出abcd而不出问题只是因为你覆盖了栈的一部分局部变量缓冲区,你试试多输入几个字符试试?
这样做非常危险,之所以允许你这样做是因为C++非常灵活,(公路两旁不设栏杆,有时候你的确可以离开公路开到你想去的地方,但如果你酒后驾车呢?)
所以不是特殊情况应使用cin.get(string, sizeof(string)) 或 cin.getline(string, sizeof(string)),或使用更快速和安全的string类:
#include string str; cin >> str; ...