C++字符数组不接受超过 4 个字符的输入
C++ character array doesn't take inputs of more than 4 characters
我正在尝试在C++中创建一个字符数组,该数组将存储我设置的有限数量的字符(在本例中为 5(。我的程序如下所示:
char name[5];
cout << "Enter 5 character name: ";
cin.getline(name, 5);
cout << name;
我定义了一个名为"name"的char变量并将其设置为仅存储5个字符,但是每当我运行程序并尝试输入超过4个字符的任何字符时,程序都会截断超过4个字符的任何内容。即使我更改 char 定义中的字符数或使用 cin 语句,也会发生这种情况。
我认为这是因为空终止符字符,也可能取决于您C++编译器的版本,无论如何阅读这里的参考 http://www.cplusplus.com/reference/istream/istream/getline/...
它说:
从流中提取字符作为无格式输入,并将它们作为 c 字符串存储到 s 中,直到提取的字符是分隔字符,或者 n 个字符已写入 s(包括终止空字符(。
如果它包含空字符终止符,那么它应该在字符数组的最末尾保留一个位置,这就是为什么如果你有一个 5 个字符的字符数组,cin.getline 只填充 4
。相关文章:
- 如何忽略第一个字符输入后的所有内容
- 使用单个变量对字符输入进行计数
- 确定用户字符输入 C++ 的结束
- 将单个字符串/字符输入串行监视器
- 如何将字符输入限制为仅获取一个字符串"cin"
- C++:使用 fgets() 读取字符输入时出错
- 如何拒绝 cin 中的字符输入并定义最小和最大整数值
- C++ 字符输入仅输出第一个字母
- 限制 2D 数组中的字符输入
- 循环直到整数输入在所需范围内无法处理非数字字符输入
- C++常量字符*输入
- 使用带符号字符输入的isalnum-Visual C++
- 限制C++中的字符输入
- 字符输入问题
- 字符** + 输入" "字符
- 文件 I/O 操作 - 奇怪的字符输入
- 如何在不暂停循环的情况下使用字符输入停止循环
- C++ - 对'if'语句使用特定字符输入
- 使用 "NEW" 获取字符输入和给定输出,并从用户那里获取字符串长度
- 正确的逐个字符输入