C ++ Segmentation Fault数组中的用户输入

时间:2014-06-28 11:40:00

标签: c++

有人能说我错过了吗?

int main() {
char eingabe[100];
cin >> eingabe;
eingabe[strlen(eingabe)]='\0';
cout << eingabe << endl;
}

但我明白了:分段错误

:(

1 个答案:

答案 0 :(得分:5)

如果cin包含超过99个字符的行,则cin >>运算符会在eingabe[]缓冲区末尾写入。这是错误的,可能会产生段错误。

您可能希望使用std::string类,而不是char[]缓冲区。

如果你有充分的理由使用char [100]缓冲区,那么 cin.getline(eingabe,100)就是您所需要的。