我正在编写一个程序以生成一个随机的16位数字。我的方法是使用字符数组一个接一个地存储随机数。最终,我想将此字符数组转换为字符串。我怎么做?
我尝试将其直接转换为字符串,但是当我将其输出到屏幕上时,输出在16位数字后给出了一些奇怪的字符。
#include <iostream>
#include <string>
using namespace std;
int main(){
char acct_num[16];
for(int x = 0; x < 16 ; x++){
acct_num[x] = rand()%10 + '0';
}
acct_num[16] = '\0';
cout<<string(acct_num)<<endl;
}
我只想要16位数字作为字符串。
您已经用完了数组的末尾。C样式的字符串称为字符串(而不是字符数组)。您已经在字符串的末尾正确添加了“ \ 0”,但是您已写入了17个字节,因此只需将char缓冲区的长度设置为17个字节,以便您的数字可以有16个字节。
使数组长17个字符:
#include <iostream>
#include <string>
using namespace std;
int main(){
char acct_num[17];
for(int x = 0; x < 16 ; x++){
acct_num[x] = rand()%10 + '0';
}
acct_num[16] = '\0';
cout<<string(acct_num)<<endl;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句