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

时间:2014-08-17 02:35:46

标签: 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];
}

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

2 个答案:

答案 0 :(得分:7)

这个

cin >> name[10];

只能将一个字符读入name[10]。数组的开头仍然未初始化,它包含垃圾,这就是你所看到的“符号”。并且name[10]实际上超出了数组范围。

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

cin >> name;

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

答案 1 :(得分:0)

由于您正在使用C ++,只需使用std::string

std::string name;
cout << "Give a name: ";
cin >> name;
cout << name;