Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencetak std::strings dengan betul dengan printf?

Bagaimana untuk Mencetak std::strings dengan betul dengan printf?

Barbara Streisand
Lepaskan: 2024-12-26 11:11:11
asal
889 orang telah melayarinya

How to Correctly Print std::strings with printf?

Cara menggunakan printf dengan std::string

Apabila cuba menggunakan printf dengan std::string, anda mungkin menghadapi tingkah laku yang tidak dijangka seperti rentetan yang kelihatan rawak sedang dicetak dan bukannya std::string yang dimaksudkan value.

Ini berlaku kerana printf ialah fungsi C yang beroperasi pada rentetan gaya C, manakala std::string ialah objek C yang menguruskan memori yang diperuntukkan secara dinamik. Untuk membetulkan ini, terdapat beberapa pendekatan:

Menggunakan std::cout:

Penyelesaian yang paling mudah ialah menggunakan std::cout, yang menyokong lebihan beban operator untuk std::string, membolehkan anda mencetaknya terus:

std::cout << "Follow this command: " << myString;
Salin selepas log masuk

Menggunakan c_str():

Jika anda perlu mengekstrak rentetan gaya C yang ditamatkan nol daripada std::string, anda boleh menggunakan kaedah c_str():

printf("Follow this command: %s", myString.c_str());
Salin selepas log masuk

Menggunakan std::format:

Untuk C moden (C 20 dan lebih baru), anda boleh mengambil kesempatan of std::format, yang menyediakan cara selamat jenis dan serba boleh untuk memformat rentetan:

std::cout << "Follow this command: " << std::format("{}", myString);
Salin selepas log masuk

Menggunakan Templat Variadik:

Jika anda memerlukan lebih kawalan ke atas format output, anda boleh pertimbangkan untuk menggunakan templat variadic. Walau bagaimanapun, tiada fungsi terbina dalam pustaka standard yang serupa dengan printf yang menggunakan templat variadik.

Menggunakan Boost.Format:

Boost menyediakan perpustakaan pengepala sahaja dipanggil Boost.Format, yang menawarkan cara alternatif untuk melaksanakan pemformatan seperti printf menggunakan templat variadic.

Atas ialah kandungan terperinci Bagaimana untuk Mencetak std::strings dengan betul dengan printf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan