スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

文字列

ディレクトリ区切り子として'\'を使ってパスを書くとき、
"\\"と書いて面倒って思ったことはないでしょうか?
C#は@を文字列の前に書くと'\'をエスケープとして解釈しない文字列になります。
残念ながらC++/CLIにはありません。
[C#]
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("c:\tmp");
        Console.WriteLine(@"c:\tmp");
        string path = Path.Combine(@"c:\", "tmp");
        path = Path.Combine(path, "dir");
        Console.WriteLine(path);
    }
}
[出力]
c:      mp
c:\tmp
c:\tmp\dir
@を付けない標準リテラル文字列は"\t"をタブと解釈します。
@を付けた逐語的リテラル文字列は"\t"を"\t"のまま扱います。

[C++/CLI]
using namespace System;
using namespace System::IO;

int main()
{
    Console::WriteLine("c:\tmp");
    Console::WriteLine("c:\\tmp");
    String^ path = Path::Combine("c:\\", "tmp");
    path = Path::Combine(path, "dir");
    Console::WriteLine(path);
    return 0;
}
[出力]
c:      mp
c:\tmp
c:\tmp\dir
C++には逐語的リテラル文字列がないので、
"\t"はタブとして、"\\"は'\'として解釈されます。

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

Author:bear09
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
QR