2017-11-19 13 views
-2

これは私のコードです。これはファイルを作成しますが、最初に入力した単語iのみを出力します。助けてください。ofstreamはファイルを作成していますが、開始文字列ではなく完全な文字列を書き込んでいます

std::string userinput; 
int a =rand() % 4+1; 
std::stringstream ss; 
ss << a; 
std::string line = ss.str(); 
std::string mfile="C:\\Users\\Venom\\Documents\\atom\\c++\\projects \\pyramid\\info files\\infernotxt\\help\\greeting\\" +line; 
//std::cout << mfile << '\n'; 
std::ifstream infile(mfile.c_str()); 
getline(infile, line); 
std::cout << infernoname<<line << '\n'; 
infile.close(); 


std::cout << username; 
std::ofstream output(guestfolder.c_str()); 
std::getline(std::cin, userinput); 
output<<userinput; 
output.close(); 
+0

はどこ 'infernoname'が宣言/初期化されていますか? – drescherjm

+0

私のアドバイスは、Visual StudioなどのデバッガでIDEを使用することです。したがって、各ステップで変数を調べて、行単位でコードを実行することができます。そうすれば、プログラムがあなたが期待することができない部分をすばやく見つけることができます。 – drescherjm

答えて

2

コードの問題は、入力の最初の単語しか取得しないstd :: cinを使用していることです。あなたが使用したいのはgetline(string)です。

問題:CodeInput/Output


getlineの使い方、userinputと仮定するとstd::string

std::getline (std::cin,userinput);

+0

しかし、cinは文字列全体を表示します。私はこれがうまくいかないと思うが、私はそれを撃つだろう。 –

+0

'std :: cout'は文字列全体を出力しますが、' std :: cin'は入力用です。 '>>'は空白までしかかかりません。あなた自身のために実験してみてください。 –

+0

これはうまくいきませんでした。それは入力さえしなかった。 –

関連する問題