Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Nilai Enum sebagai Teks dalam C?
Mengambil Nilai Enum sebagai Teks dalam C
Dalam C , tingkah laku lalai untuk mencetak enum adalah untuk mengeluarkan nilai berangkanya. Walau bagaimanapun, terdapat situasi di mana adalah wajar untuk mendapatkan semula perwakilan teks bagi nilai enum.
Penyelesaian Tanpa jika/suis:
Menggunakan Peta:
#include <map> #include <string_view> enum Errors { ErrorA = 0, ErrorB, ErrorC }; std::ostream& operator result; #define INSERT_ELEMENT(p) result.emplace(p, #p); INSERT_ELEMENT(ErrorA); INSERT_ELEMENT(ErrorB); INSERT_ELEMENT(ErrorC); #undef INSERT_ELEMENT return result; }(); return out <p><strong>Menggunakan Tatasusunan dengan Linear Carian:</strong></p> <pre class="brush:php;toolbar:false">#include <string_view> enum Errors { ErrorA = 0, ErrorB, ErrorC }; std::ostream& operatorstr; i++) { if (i->value == value) { s = i->str; break; } } return out <p><strong>Menggunakan Suis/Pernyataan Kes:</strong></p> <pre class="brush:php;toolbar:false">#include <string> enum Errors { ErrorA = 0, ErrorB, ErrorC }; std::ostream& operator<p><strong>Kes Ujian:</strong></p> <pre class="brush:php;toolbar:false">#include <iostream> int main() { std::cout </iostream>
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Enum sebagai Teks dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!