2017-07-16 3 views
2

++:C私はこのように、複数行のシステムを書いている行を戻る

string readLines(string x) 
{ 
    string temp = "a"; 
    vector<string> lines(0); 
    string result; 

    while (1) 
    { 
     cout << x; 
     getline(cin, temp) 

     if(temp != "") 
     { 
      result = result + "\n" + temp; 
      lines.push_back(temp); 
     } 
     else 
      break; 
    } 
    return result; 
} 

が正常に動作しているが、私は前の行を編集することができたい、例えば、私が何かを入力していますこのように:

Helo, 
World 

私はheloに戻り、誤植を修正したいと思います。これどうやってするの?

+4

あなたは、端末とプラットフォームの特異的な相互作用をしたいです。 (AKA、WindowsはLinuxとは異なり、.....とは異なります)。 'ncurses'は、プラットフォーム固有のビットを抽象化する一般的なライブラリです。 – druckermanly

+2

これは入力ストリームの機能の性質ではありません。 –

+0

@druckermanly、私はWindowsで –

答えて

1

C++に戻って1行に行く何の移植方法はありません。あなたは\rを印刷しますが、前の行に移動することにより、行の先頭に移動することができます

は、プラットフォームに依存するコードが必要です。

Cursesのようなライブラリを使用しない場合は、ANSI escape codesを試すことができます。端末に応じて、cout << "\033[F"はカーソルを1行上に移動します。 Windowsでは

SetConsoleCursorPosition APIもあります。

関連する問題