gpt4 book ai didi

c++ - 无法使用 getline() 输入字符串。它只读取一个字符串

转载 作者:搜寻专家 更新时间:2023-10-31 00:09:03 25 4
gpt4 key购买 nike

char* name[4];
int j=0;
while(cin.getline(name[j],80))//input given:you(ent)me(ent)he(ent)she
cout<<name[j++];

这段代码只读取一个字符串到一个换行符。它不应该读取所​​有 4 个字符串并打印它们吗?这是使用 getline 输入字符串的好方法吗?

最佳答案

问题:您没有正确分配内存。您正在声明一个指针数组,而不是一个 c 样式字符串数组。

可能的解决方案:您需要先阅读有关指针和内存分配的内容。您可以先为声明的四个指针中的每一个分配内存 name[0]name[1]name[2]name[3] 使用以下代码:

char* name[4];
for (int i = 0; i < 4; i++)
{
name[i] = new char[80];
}

或者您可以使用下面发布代码的二维数组:

char name[4][80];
int j=0;
while(j<4 && cin.getline(name[j],80))
{
cout<<name[j++];
}

关于c++ - 无法使用 getline() 输入字符串。它只读取一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261954/

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