質問

多数のファイルを処理するMac OS X向けのコマンドラインツールを作成しています。ユーザーに現在のファイルが処理されていることを示したいのですが、ターミナルウィンドウを汚染している大容量のファイルが必要ではありません。

代わりに、単一の行を使用してファイルパスを出力し、次のファイルの行の再利用をしたいと思います。出力する文字(または他のコード)はありますか std::cout これを達成するために?

また、このツールをWindows用に再ターゲットしたい場合、ソリューションは両方のプラットフォームで同じになりますか?

役に立ちましたか?

解決

「 r」は、WindowsとMac OS Xの両方で機能するはずです。

何かのようなもの:

std::cout << "will not see this\rwill see this" << std::flush;
std::cout << std::endl; // all done

他のヒント

私はMacにアクセスできませんが、純粋なコンソールの観点からは、これはキャリッジリターンとラインフィードのキャラクターをどのように扱うかに大きく依存します。文字通りどちらか一方をコンソールに送信できる場合は、送信したい ただ キャリッジリターン。

Macは、 *nix&Windowsとは異なるキャリッジリターンとラインフィードの両方を扱うと確信しています。

インプレースの更新を探している場合(例:現在の行を上書きする)、私は見ることをお勧めします curses lib。これは、あなたが探していることを行うためのプラットフォームの独立した手段を提供するはずです。 (標準のC ++を使用しても、あなたが求めているもののプラットフォームに依存しない手段はありません)。

std :: coutは、「 r」をラインのbeguiningに戻すと解釈します。毎回「<< endl」を追加することを望まない場合は、「 n」を使用します。

std::cout << "this will work!\nSee... a new line!" << std::endl;

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top