2008-12-09 14 views

cevap

9

(çiğ dize vardır:

cout<<R"((\"ddd\aa)\n)"<<endl; 
cout<<R"delimiter((\"ddd\aa)\n)delimiter"<<endl; 

çıktısı:

(\"ddd\aa)\n 
(\"ddd\aa)\n 
6

Bu şu anda mümkün değildir. Yönetilen C++ dize değişmezleri, normal C++ dizeleriyle neredeyse aynı kurallara sahiptir. Yönetilen C++ özelliği aslında ANSI C++ standardının sadece bir yükseltisidir.

Şu anda C++ (yönetilen veya edilmeyen) C# stili değişmez sözdizimi için destek yoktur. Her karakterden manüel olarak kaçmalısınız.

Daha fazla bilgi için C++/CLI spesifikasyonlarındaki Bölüm 9.1.3.3'e bakın. Spec Link) C++ 11

+1

o şimdi olduğu daha sonra verildiğinde Bu cevap çok daha doğru için. – RichardPlunkett

+0

@RichardPlunkett, mevcut durumun yansıması ışığında bu yazıyı düzenlemeli veya kaldırmalı mıyız? –

+0

Ham dize değişmezleri istenen sonucu elde etmek için kullanılabilir: String^f = gcnew Dize (R "(C: \ foo \ bar.txt)"); [Daha fazla bilgi için Google msdn C++ Dize Literalleri] – Cameron

3

oldukça olarak veciz değil '@' C# kelimesi kelimesine dize olarak literal iken, Aşağıdaki derleme/Clr: saf, bu nedenle, saf MSIL için C++ Raw String Literals ve benzeri bir sonuç için kullanabilirsiniz:

Ham dize hazır da düzenli C++ kullanılabilir:

char *x = R"(C:\foo\bar.txt)"; 

tarihinde "msdn C++ Dize rakamları" daha fazla bilgi

+0

Oh! harika!! Çok teşekkür ederim – Cluster

İlgili konular