如何将整数显示为字符

How to display an integer literally as a character

本文关键字:字符 显示 整数      更新时间:2023-10-16

我有一个整数1,我想在C++中将它显示为字符'1'。到目前为止,我只成功地将它从整数65转换为字符"A"。你如何阻止这种情况?

int theDigit = 1;
char ch = theDigit+'0';

这之所以有效,是因为它保证了字符序列'0'。。。'9'是连续的,所以如果你把数字加在"0"上,你就会得到相应的字符。显然,这只适用于个位数(如果theDigit是例如20,则会得到一个不相关的字符),如果需要将整数转换为字符串,则需要snprintf(在C中)或字符串流(在C++中)。


  1. C++11,[lex.charset]¶3:

在源和执行基本字符集中,上述十进制数字列表中0之后的每个字符的值都应比前一个字符的值大一。

顺便说一句,我想他们并没有因为EBCDIC而在字母字符中强制要求相邻性。

使用字符串流。

int blah = 356;
stringstream ss;
string text;
ss << blah;
ss >> text;

现在text包含"356"(没有引号)。如果要复制我的代码,请确保包含头文件并使用名称空间:

#include <sstream> //For stringstream
#include <string>
using namespace std;
#include <stdio.h>
#include <stdlib.h>
int i = 3;
char buffer [25];
itoa (i, buffer, 10);
printf ("Integer: %sn",buffer);

整数:3

您刚刚询问了打印整数的问题,所以真正简单的c++答案是:

#include <iostream>
int main()
{
  int value = 1;
  std::cout << value << endl;
  return 0;
}