gpt4 book ai didi

C++ 字符数组给出奇怪的输出

转载 作者:太空宇宙 更新时间:2023-11-04 14:56:50 24 4
gpt4 key购买 nike

我试图在函数中创建一个 char 数组,将其传递给 main,然后打印出来。这给了我一串像这样的随机字符:╠╠╠╠╠╠╠╠↑

此外,当我检查 '\0' 终止符之前的字符数时,第一个输出会给我输入的字符数,但第二个输出会给我 49(缓冲区大小),所以我觉得是一个涉及 NULL 终止符的问题,但我不确定如何解决它。 .

我已经在我的真实项目文件之外重新创建了问题,因此代码不那么困惑,如下所示。

const int BUFFER = 50;

char* getWord()
{
char word[BUFFER];

cout << "Please enter a word: ";
cin.getline(word, BUFFER);
cout << "The word is: " << word; // This prints out the word with no problems..

return word;
}

int main()
{
char* wordPtr;

wordPtr = getWord();
cout << "Your word is: " << wordPtr << "\n"; // This prints out random symbols.
system("PAUSE");

return 0;
}

非常感谢任何帮助。

最佳答案

您不能返回本地数组。

const int BUFFER = 50;

void getWord(char* word, int size)
{
cout << "Please enter a word: ";
cin.getline(word, size);
cout << "The word is: " << word;
}

int main()
{
char word[BUFFER];

getWord(word, BUFFER);
cout << "Your word is: " << word << "\n";
system("PAUSE");

return 0;
}

C++ 版本:

string getWord()
{
string word;
cout << "Please enter a word: ";
getline(cin, word);
cout << "The word is: " << word;

return word;
}

int main()
{
string word;

word = getWord();
cout << "Your word is: " << word << "\n";
system("PAUSE");

return 0;
}

关于C++ 字符数组给出奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473199/

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