如何将整数转换为其 ascii 等效项
How to convert an integer to its ascii equivalent
上下文:我正在用c ++制作密码生成器,基本上它使用rand来生成数字,这些数字直接对应于ASCII字符。
因此,生成数字很容易,但我需要将其转换为 ASCII 等效物以实际制作可用的密码。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main ()
{
//Initializing variables.
int type = 0;
int character = 0;
char print = character;
//Generator.
srand(time(NULL));
for (int i=0; i<10;i++)
{
type = rand()%(3-1+1)+1;//Determines: 1 = Uppercase, 2 = Lowercase, 3 = Number.
if (type == 1)//If Uppercase.
{
character = rand()%(90-65+1)+65;//Determines Uppercase character to be generated.
cout<<print<<endl;
}
if (type == 2)//If Lowercase.
{
character = rand()%(122-97+1)+97;//Determine Lowercase character to be generated.
cout<<print<<endl;
}
if (type == 3)//If Numerical.
{
character = rand()%(57-48+1)+48;//Determines Number to be generated.
cout<<print<<endl;
}
}
}
在我上面发布的代码中,你可以看到我上次试图公然告诉程序变量"字符"需要用作实际字符。
好吧,所以似乎有点混乱。兰德生成一个介于 65 到 90 之间的数字。这些数字对应于 ASCII 表上的大写字母。我想将字母打印到控制台,而不是生成的数字。
当你写这个的时候
char print = character;
你告诉编译器,你希望它将变量print
初始化为变量character
的当前值(当时恰好为零)。如果您希望将当前值设置为不同类型的变量,则需要在重新分配 character
后执行此操作:
character = rand()%(90-65+1)+65;//Determines Uppercase character to be generated.
print = (char)character;
cout<<print<<endl;
但是,您不必重新分配,因为直接在打印前进行转换就足够了:
character = rand()%(90-65+1)+65;//Determines Uppercase character to be generated.
cout<<(char)character<<endl;
注意:虽然可以使用 ASCII 字符的十进制值,但如果改用字符常量,代码会变得更容易阅读:
character = rand()%('Z'-'A'+1)+'A';
可以通过替换来尝试
cout<<print<<endl;
由
cout<<(char)character;
然后你就会明白你错过了什么。
除了Jay Kumars的回答之外,我相信这是一个隐式/显式转换
这是我用我的代码测试的一个例子,它为此起作用。
for (int i = 0; i < size; ++i) {
cout << (char)('0' + 17 + i) << "-->t"; // implicit conversion
}
相关文章:
- 如何反转整数参数包
- enum是C++中的宏变量还是整数变量
- 努力将整数转换为链表。不知道我在这里做错了什么
- 整数不会重复超过随机数
- 在C++中手动调整数组大小
- 检查输入是否不是整数或数字
- 弄清楚如何在C++中将整数读入 ASCII
- 使用指针将 ASCII 值添加到整数
- 当我尝试将范围值存储为 8 位的固定宽度整数时,它向我显示一些其他值 [ASCII]
- 如何将ASCII数字转换为从文件中提取的整数
- 将整数转换为ascii值C++
- 在整数中转换ASCII文件列
- wostringstream,Ascii,Unicode,Win32和整数连接到字符串
- 如果我有一个固定大小的填充ascii数字的char数组,我知道它指的是一个无符号整数,那么将其转换为无符号整数的最快方法
- 卡住了!使用整数、字符到整数转换、ASCII 和 MIDI 进行验证
- C++ 堆栈字符串流函数返回整数与 ASCII
- 如何将整数转换为其 ascii 等效项
- 将 0 和 1 的字符串变成一个整数,变成那个 ascii val 中的一个字符
- 我如何读取整数并将其转换为ASCII字符和
- 将整数的十进制值作为其 ASCII 表示形式插入到字符向量中