我试图创建一个简单的(模块化的)C++程序,读取用户输入并将其吐出。C++指针问题
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void _printOut(char * output)
{
cout << output << endl;
}
char * readUserInput()
{
char userInput[256];
cin >> userInput;
return userInput;
}
int _tmain(int argc, _TCHAR* argv[])
{
_printOut("Enter your name: ");
char * userName = readUserInput();
_printOut("Hello");
_printOut(userName);
system("pause");
return 0;
}
输入您的姓名: AAAA 你好 ╠╠╠╠╠╠╠╠ 按任意键继续。 。 。
,如果我在readUserInput功能打印出userInput变量它打印出什么输入。然而,尝试在_tmain函数中将userInput变量存储打印为userName会导致打印出不可理解的字符序列。即。 ╠╠╠╠╠╠╠╠。 据我的猜测,这可能是由指针问题引起的,但据我所知,我正确地引用了所有内容。
调试这样的代码: 在这一行:_printOut( “你好”);在方法中:_tmain [userName =“abcdefg”] at this line:_printOut(userName);在方法_tmain [用户名=“†UX”]
所以我想知道如何在不分配或两条线之间操纵它的用户名的值正在改变。一旦超出范围
的问题是,你使用'C字符指针++'。改用'std :: string'。 – stefan
使字符串函数而不是复杂的字符指针。 –