ユーザーの入力を読み取って吐き出す単純な (モジュール化された) 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 変数を出力すると、入力内容が出力されます。ただし、userInput 変数ストアを _tmain 関数で userName として出力しようとすると、出力される文字列が理解不能になります。すなわち。╠╠╠╠╠╠╠╠. 私の推測では、これはポインターの問題が原因である可能性がありますが、私が知る限り、すべてを正しく参照しています。
このコードのデバッグ: この行: _printOut("Hello"); メソッド内: _tmain [userName = "abcdefg"] この行: _printOut(userName); メソッド _tmain で [userName = "†UX"]
そのため、username の値が 2 つの行の間で割り当てられていないか、操作されていない場合に、その値がどのように変化するのか疑問に思っています。