在c++中,打印数组显示的是符号而不是字符

Printing an array shows symbols instead of characters C++

本文关键字:符号 字符 显示 c++ 打印 数组      更新时间:2023-10-16

嘿,我在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];
}

谁能解释一下我的代码哪里出了问题,用符号而不是我给出的正常字符来表示?

This

cin >> name[10];

只读取一个字符到name[10]。数组的开头保持未初始化,它包含垃圾,也就是你看到的"符号"。name[10]对于数组来说是越界的

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

cin >> name;

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

既然是c++,就用std::string吧。

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