c++ - 在 C++ 中用整数填充固定大小的 char 数组
问题描述
我想将整数存储在 char 数组中,例如:0 到 1449,我检查了其他帖子,并尝试了 memset、sprintf 等,但是当我在 char 数组中打印时,我得到乱码或不可读的符号。有人可以帮忙吗?
我检查了重复的链接,但是我没有尝试将 int 打印到 char,我想将 int 存储在 char 数组中。但是我在for循环里面试过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];
memset(buf, ' '+ i, 1450); 实际上将始终在缓冲区的开头写入 ' ' ascii 数字加上 i 的总和(缓冲区地址永远不会增加)。
像这样的东西,也许是你想要的:
int buf[1500] = 0;
for (int i = 0; i < 1449; i++)
{
buf[i] = i;
cout << buf[i] << ' ';
}
考虑使用像 std::vector 这样的 c++11 容器来保存 int 或 chars,使用起来会更安全。
推荐阅读
- c# - 使用 AddIn Express 加载工作表以显示/隐藏功能区时如何捕获?
- r - 将 R Shiny 与 mysql 连接,mysql 在 rds (AWS) 中运行
- javascript - Jquery 工具提示使用敲除 observable 作为内容
- r - 在零/空值后按组重置行 id
- python - 如何将熊猫数据框绘制为散点图?我想我可能搞砸了索引并且无法添加新索引?
- laravel - laravel 5.6:鉴于每个产品都有多个品牌,如何在表格中显示每个产品和可用品牌
- javascript - 防止 select2 的标签文本中出现空格
- ffmpeg - 如何让ffmpeg保持活力?它继续退出
- python - 如何更新多个 for 循环中的列表?
- soap - Robot Framework 中的 SudsLibrary:获取和设置对象属性