gpt4 book ai didi

c++ - getline 跳过 char 数组的一个字符

转载 作者:行者123 更新时间:2023-11-28 02:27:37 24 4
gpt4 key购买 nike

为什么 cin.getline 会跳过一个字符?

代码如下:

#include <iostream>
using namespace std;
int main(){
char b[5];
cin.ignore();
cin.getline(b,5);
cout << b;
return 0;
}

如果我删除了 cin.ignore();然后它将跳过最后一个字符..示例 如果我输入 abcde,它现在将显示 bcde当我删除 cin.ignore();它将显示 abcd

最佳答案

您需要额外的空间来存储空字符。将您的字符串更改为

char b[6];

C 字符串以空字符 ('\0') 结尾,因此如果您需要一个可以存储 5 个字符的字符串,则需要创建一个可以存储 6 个字符的字符串(额外的空字符的空间)

因此您现在可以删除 cin.ignore(),因为它会读取您输入的第一个字符,然后将其丢弃。

尝试

#include <iostream>
using namespace std;
int main(){
char b[6];
cin.getline(b,6);
cout << b;
return 0;
}

关于c++ - getline 跳过 char 数组的一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30005963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com