2008-12-09 16 views

Trả lời

9

trong C++ 11, có chuỗi nguyên nghĩa đen:

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

đầu ra là:

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

Hiện tại không thể thực hiện được điều này. Các chuỗi ký tự chuỗi C++ được quản lý có hầu hết các quy tắc giống hệt như các chuỗi C++ bình thường. Việc quản lý C + + spec là trong thực tế chỉ là một augmentation của tiêu chuẩn ANSI C++.

Hiện tại, không có hỗ trợ cho cú pháp ngữ kiểu C# trong C++ (được quản lý hay không). Bạn phải tự thoát khỏi mọi nhân vật.

Xem Phần 9.1.3.3 trong thông số C++/CLI để biết thêm chi tiết. (Spec Link)

+1

Câu trả lời này là chính xác hơn nhiều khi nó được đưa ra sau đó bây giờ. – RichardPlunkett

+0

@RichardPlunkett trong ánh sáng phản ánh trạng thái hiện tại của sự vật, chúng ta có nên chỉnh sửa hoặc xóa bài đăng này không? –

+0

Các chuỗi ký tự chuỗi thô có thể được sử dụng để đạt được kết quả mong muốn: Chuỗi^f = gcnew Chuỗi (R "(C: \ foo \ bar.txt)"); [Google msdn C++ Chuỗi Literals để biết thêm thông tin] – Cameron

3

Trong khi không phải là khá ngắn gọn là '@' C# chuỗi đúng nguyên văn chữ, sau đây không biên dịch/Clr: tinh khiết, vì vậy bạn có thể sử dụng C + + Nguyên chuỗi văn bản cho MSIL tinh khiết và một kết quả tương tự:

String^ f = gcnew String(R"(C:\foo\bar.txt)"); 

xâu liệu có thể được sử dụng trong thường xuyên C++ cũng:

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

Google "MSDN C++ Chuỗi Literals" để biết thêm

+0

Oh! tuyệt quá!! Cảm ơn bạn rất nhiều – Cluster

Các vấn đề liên quan