タイトルの語彙力からも察せるように誰得です。
ただ、少なくとも僕自身コレができないことでかなり困ったことがあったので、もしかすると世の1億2000万人のプログラマの内の誰かも僕と同じように困っているのかも...?ということで書きました。
僕自身PowerShellの知識は全くなく、ほかにももっと合理的な方法はあると思うので、この記事はあくまで応急処置として使ってください。
概要
例えばC++のこんなコードがあるとする(一部省略)。
int main(){
printf("Hello\n"); // 出力。 "\n"は改行
}
これをPowerShell上で(当記事ではコマンドプロンプトの要領で使うとする)コンパイル・実行すると
PS C:\...\Codes> g++ -o test.exe test.cpp ; ./test.exe
Hello
PS C:\...\Codes>
ここまでは自明。
一方、ここにまたコードがある。
int main(){
printf("Hello"); // "\n" を抜いた
}
これをコンパイル・実行すると...
PS C:\...\Codes> g++ -o test.exe test.cpp ; ./test.exe
Hello
PS C:\...\Codes>
...あれ?改行されている。
文字列は違うはずなのに、出力は同じである。
困った!
というわけで
解決方法
この解決は、ひとまず「後者の改行を消す」よりも「前者の改行を増やす」をする。
仕組みは簡単、コンパイル・実行と同時にもう一度(プログラムとは別に)改行をさせればOK。
というわけで、コマンドの末尾に""
を追加してみる。
前者のコードでは
PS C:\...\Codes> g++ -o test.exe test.cpp ; ./test.exe ; ""
Hello
PS C:\...\Codes>
案の定改行が増えている。一方後者だと
PS C:\...\Codes> g++ -o test.exe test.cpp ; ./test.exe ; ""
Hello
PS C:\...\Codes>
改行が増えていない!
これで2つを区別できるようになった。やったね!