如何在c+中将整数值转换为特定的ascii字符+; 我是C++新手,我正在尝试做一些应该很基本的事情。 我在C++中有一个小循环,只显示一个数字序列,我想把这些数字转换成特定的ASCII字符。大概是这样的: for (int k = 0; k < 16; k++) { display(65+k); } for (int k = 0; k < 16; k++) { char str[2] = { 65 + k }; // Implicitly add the terminating null. display(str); } char convertedAscii; for (int k = 0; k < 16; k++) { convertedAscii = static_cast<char>(65+k); cout << convertedAscii; } cout << endl; for(int k=0;k

如何在c+中将整数值转换为特定的ascii字符+; 我是C++新手,我正在尝试做一些应该很基本的事情。 我在C++中有一个小循环,只显示一个数字序列,我想把这些数字转换成特定的ASCII字符。大概是这样的: for (int k = 0; k < 16; k++) { display(65+k); } for (int k = 0; k < 16; k++) { char str[2] = { 65 + k }; // Implicitly add the terminating null. display(str); } char convertedAscii; for (int k = 0; k < 16; k++) { convertedAscii = static_cast<char>(65+k); cout << convertedAscii; } cout << endl; for(int k=0;k,c++,ascii,int,C++,Ascii,Int,结果应该是这样的: for (int k = 0; k < 16; k++) { display(65+k); } for (int k = 0; k < 16; k++) { char str[2] = { 65 + k }; // Implicitly add the terminating null. display(str); } char convertedAscii; for (int k = 0; k < 16

结果应该是这样的:

    for (int k = 0; k < 16; k++) {
        display(65+k);
    }
for (int k = 0; k < 16; k++) {
    char str[2] = { 65 + k };  // Implicitly add the terminating null.
    display(str);
}
char convertedAscii;
for (int k = 0; k < 16; k++) {
    convertedAscii = static_cast<char>(65+k);
    cout << convertedAscii;
}
cout << endl;
ABCDEFGH。。。等

有什么想法吗

谢谢

那太好了

#include <iostream>  
int main() {  
for (int k = 0; k < 16; k++) {
        std::cout.put(65+k);
    }
}
#包括
int main(){
对于(int k=0;k<16;k++){
标准:电流输出(65+k);
}
}

对于C++

根据说明进行编辑: 从错误消息判断,
display
采用C样式字符串。您可以像这样构建一个:

    for (int k = 0; k < 16; k++) {
        display(65+k);
    }
for (int k = 0; k < 16; k++) {
    char str[2] = { 65 + k };  // Implicitly add the terminating null.
    display(str);
}
char convertedAscii;
for (int k = 0; k < 16; k++) {
    convertedAscii = static_cast<char>(65+k);
    cout << convertedAscii;
}
cout << endl;
for(int k=0;k<16;k++){
char str[2]={65+k};//隐式添加终止null。
显示(str);
}

以下是将整数转换为ascii字符的简单方法:

int number = 65;
char convertedAscii = static_cast<char>(number);
cout << convertedAscii;
int number=65;
char convertedAscii=静态_转换(数字);

用“A”代替65可能是一种改进,但事实并非如此。实际上,我们不能保证“A”后面的代码是字母。如果这在AS/400上运行,程序将生成一个乱七八糟的文件,任何人都可以将其读取为ASCII。65比“A”更正确,但“A”对那些没有记住ASCII表的松散的人来说更好。路德认为,这种解决方案可以在任何具有至少7位宽流的环境中移植生成ASCII字符,这一点是正确的(虽然C
char
类型必须至少为8位,但这并不妨碍写入磁盘或标准输出时的窄化转换),而不管环境是否使用ASCII作为其本机格式。这是一个不正确的解决方案。OP希望输出ASCII字符,但“A”的值取决于主机编码。如果在as/400上编译,则它将向输出流发送0xc2 0xc3 0xc4..。@Luther OP特别要求结果为characters.我不明白在这样一个系统上,无论主机实际使用什么数字表示,std::cout
怎么都不会将显示器上的
'a'+1
转换为
'B'
。cout不知道如何在显示器上打“a”。它只知道如何向显示器(或文件)发送字符代码解释代码和显示特定代码的“A”取决于您的显示器。如果程序和显示器对“A”的代码不一致,您就有问题了。OP要求程序应以ASCII编码生成字符,这意味着应为“A”生成65,依此类推。但如果程序是com堆放在源代码中的“a”表示不同的网络代码(EBCDIC)的系统下,那么我们就有了不一致的情况。因此,我们不能使用“A”来生成ASCII,而必须直接使用字符代码。事实上,正如我现在读到的,OP有着不可能的冲突要求:第一,它生成ASCII,第二,它生成诸如“ABCDEFGH”之类的字符。我的方法(我相信)解决了后一个问题,我同意它不会总是产生ASCII输出。