打印数组显示符号而不是字符C++

Kah*_*Kah 1 c++ arrays symbols

嘿,我在使用C++学习数组时遇到了问题.

我必须开发的程序是一个简单的数组,它读入一个名字(在char中)并在输入后打印它.

我的程序读取它但输出符号,而不是字符?有人可以解释一下我做错了什么吗?

Char name[10];
cout <<"Give a name: "; 
cin >> name[10];
cout << endl;

for (int i=0; i<strlen(name);i++)
{
cout << name[i];
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释我的代码中出错的地方并将其放在符号中,而不是我给出的普通字符吗?

AnT*_*AnT 7

这个

cin >> name[10];
Run Code Online (Sandbox Code Playgroud)

只读一个字符name[10].数组的开头仍然未初始化,它包含垃圾,这就是你所看到的"符号".并且name[10]实际上是你的数组的界限.

要将C风格的字符串读入char数组,您应该这样做

cin >> name;
Run Code Online (Sandbox Code Playgroud)

但是你最好不要使用原始数组来存储字符串,特别是当你必须处理不可预测长度的用户输入时.学会std::string改用.