質問: ソースコードファイルの多くの行にある `^ m`。どうすればそれらを削除できますか? 最近、誰かが私に.cppソースコードファイルをいくつか送ってくれました。 gnu emacsまたはgvimでファイルを開くと、すべての行の終わり近くに奇妙な文字^mがあることがわかりました。これが私の意味を示すスクリーンショットですこれらの同じソースファイルをgeditで開くと、これらの^m文字が表示されません。私は何をすべきか?ここには問題のファイルがたくさんあるので、空の文字列に置き換えて検索-置換操作を開いて実行することは、画期的な操作のように見えます。不思議なことに、gccでコンパイルすると、これらのファイルはきれいにコンパイルされます。ここで何が起こっているのか。私は何をすべきか?
回答: unixでは、改行文字は\nですが、windowsでは\r\nです。 \rまたは^mは、キャリッジリターン文字です。ファイルがwindowsモードのエディターで書き込まれる場合、新しい改行文字にはそれぞれキャリッジリターン文字が付きます。改行文字をwindowsのように扱うようにエディターに指示すると(そしてそれが理解できる場合)、^m文字は表示されなくなります。または、コードベースでdos2unixを実行して、この問題を修正することもできます。そして、あなたが正しく観察したように、それはコード内の特別な特殊文字ではなく、windowsとlinuxの改行文字の解釈の不一致であるため、コンパイルに問題はありません。