2017-02-14 5 views
0

私はユーザーからの入力を取得し、それを文字として保存する必要があります。エスケープシーケンスを含む問題です。cinから ' n'文字を保存する

string userInput; 
char delimiter; 

cout << "Enter Delimiter: "; 
cin >> userInput; 

if(userInput == "\n"){ 
    delimiter = '\n'; 
} 
else{ 
    delimiter = *userInput.c_str(); 
} 

userInput = \n

userInput == "\n"がfalseでdelimiter = \私は\nエスケープシーケンス、または任意のエスケープシーケンスする区切り文字を必要

、ユーザーここで

は一例ですそれを選ぶ。あなたがここにバックスラッシュをエスケープする必要が

+1

文字 '' \ ''の後ろに ''n' 'を読みたい、あるいは改行文字? –

答えて

3

if(userInput == "\n") 

は次のようになります。

if(userInput == "\\n") 
+0

これは完璧に働いた、ありがとう! – Ausche

0

cinは、スペースで区切られ、\nを含むので、あなたはoperator>>からそれを得ることは決してないだろう。 userInputが空の文字列であるかどうかを確認して、改行文字として扱います。

+0

リテラル文字\とnを入力すると、彼はそれを手に入れます。 –

+0

@NeilButterworthええと、私は 'enter'を押すだけで、改行文字の区切り記号が最も簡単に表示されると考えました –

関連する問題