我想将整数存储在char数组ex中:0直到1449,我检查了其他帖子,并尝试了memset,sprinf等。但是在char数组内部打印时,我得到了乱码或无法读取的符号。有人可以帮忙吗?
我检查了重复的链接,但是我没有尝试将int打印到char,我想将int存储在char数组中。但是我在循环中尝试了buf[i] = static_cast<char>(i);
,但没有成功。投放无效。
我尝试的最后一个是这样的:
char buf [1450];
for (int i = 0; i < 1449; i++)
{
memset(buf, ' '+ i, 1450);
cout << buf[i];
}
输出为:
最佳答案
我不确定您要做什么!你应该说你的目标。
c++中的char(通常为8位)不包含int(通常为32位),如果要存储int,则应使用int数组:
int buf[1500];
记忆集(buf,''+ i,1450);实际上将始终在缓冲区的开头写入''ascii数加i的总和(缓冲区地址从不递增)。
这样的事情,也许就是您想要的:
int buf[1500] = 0;
for (int i = 0; i < 1449; i++)
{
buf[i] = i;
cout << buf[i] << ' ';
}
考虑使用c++ 11容器(例如std::vector)来保存int或chars,这样使用起来会更安全。