Có cách nào để sử dụng các chuỗi văn bản đúng nguyên văn trong C++ được quản lý không? Tương tự như C# 'sNguyên văn Nguyên văn trong Managed C++? (như C# 's @ "blah")
String Docs = @"c:\documents and settings\"
Có cách nào để sử dụng các chuỗi văn bản đúng nguyên văn trong C++ được quản lý không? Tương tự như C# 'sNguyên văn Nguyên văn trong Managed C++? (như C# 's @ "blah")
String Docs = @"c:\documents and settings\"
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
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)
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
Oh! tuyệt quá!! Cảm ơn bạn rất nhiều – Cluster
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
@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? –
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