在c++中,打印数组显示的是符号而不是字符
Printing an array shows symbols instead of characters C++
嘿,我在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;
相关文章:
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- C++中无符号字符溢出
- 使用无符号字符数组有效存储内存
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 从 std::vector<无符号字符>切片中提取 int?
- 将超出范围的整数分配给有符号字符类型
- 将无符号字符的向量存储在数组中会给我 std::bad_alloc
- 使用 fopen 打开 .pak 文件并使该文件应用于 const 无符号字符* (C++)
- 库特无符号字符
- 寻找一种更好的方法来表示无符号字符数组
- C++ 无符号字符 *{varName};-> C#
- 如何返回/复制unique_ptr<无符号字符[]>的值?
- 将浮点数转换为无符号字符数组并打印出来
- 在函数中返回无符号字符数组,但不返回指针
- 如何在 C/C++ 中将无符号字符*转换为无符号字符数组?
- 如何返回实际值(在我的例子中是无符号字符数组)而不是来自 C++ 函数的指针?
- 如何将带有十六进制值的 std::string 转换为 std::vector<无符号字符>
- 无符号字符打印其 ASCII 值
- 字符数组到无符号字符 *