如何在c ++中将char值显示为字符串?

时间:2015-10-19 21:53:04

标签: c++ string unicode char

所以我有一个简单的char变量,如下所示:

char testChar = 00000;

现在,我的目标是在控制台中不显示unicode字符,而是显示值本身("00000")。我怎样才能做到这一点?是否有可能以某种方式将其转换为字符串?

2 个答案:

答案 0 :(得分:0)

打印char的整数值:

std::cout << static_cast<int>(testChar) << std::endl;
// prints "0"

如果没有强制转换,它会使用operator<<参数调用char,该参数会打印该字符。

char是一个整数类型,只存储数字,而不是定义中使用的格式(&#34; 00000&#34;)。要使用填充打印数字:

#include <iomanip>
std::cout << std::setw(5) << std::setfill(' ') << static_cast<int>(testChar) << std::endl;
// prints "00000"

请参阅http://en.cppreference.com/w/cpp/io/manip/setfill

要将其转换为包含格式化字符编号的std::string,您可以使用stringstream

#include <iomanip>
#include <sstream>
std::ostringstream stream;
stream << std::setw(5) << std::setfill(' ') << static_cast<int>(testChar);
std::string str = stream.str();
// str contains "00000"

请参阅http://en.cppreference.com/w/cpp/io/basic_stringstream

答案 1 :(得分:0)

您将值与表示混淆。字符的值是数字零。您可以将其表达为&#34;零&#34;,&#34; 0&#34;,&#34; 00&#34;或&#34; 1-1&#34;如果你愿意,但它是相同的值,它是相同的角色。

如果要输出字符串&#34; 0000&#34;如果一个字符的值为零,你可以这样做:

char a;
if (a==0)
   std::cout << "0000";