c++ - ^@ 和 ^A 作为 C++ 中的输出
问题描述
我正在尝试将我的代码输出保存在文本文件中。所以,我声明并打开了如下文件。
ofstream of;
of.open("outputPeakFinder.txt");
完成分析后,我尝试将输出保存在文件中,如下所示:
for (i = 0; i < NXtl * NSamples; i++){
printf("%d, Output: %d \n", i, output[i]);
of << output[i] << '\n';
}
它在终端上打印正确的输出,应该是
0 0 0 0 0 0 0 1 0 0
但在我看到的文本文件中
^@ ^@ ^@ ^@ ^@ ^@ ^@ ^A ^@ ^@
看起来很傻,但是我哪里做错了。
解决方案
你需要了解 a 的数值char
和它所代表的字符之间的区别。例如,字母'A'
的数值为 65,数字'0'
的数值为 48(参见ASCII)。
ASCIINUL
字符的数值为零,将作为 anint
打印,0
但它不对应任何字母、数字或标点符号。一些文本编辑器会将此类字符显示为特殊序列^@
,以将它们与有效字符(例如'0'
或)区分开来'@'
。
推荐阅读
- excel - Excel随机崩溃
- python - 气流外部任务传感器卡住
- nginx - 根据请求的来源需要基本身份验证(使用地理模块按国家/地区过滤)
- javascript - 有没有办法在功能组件上新渲染之前执行清理功能
- swift - 无法在最新的 iOS 13.0 中使用 SFSafariViewController 打开 MS Word 和 PDF 文档
- python - 如何在 Windows 10 上安装 Python
- python - 计算扑克中同花的概率
- linux - 从文件中提取路径,然后将文件复制到另一个路径并重命名它们 bash 脚本
- google-cloud-nl - 谷歌云 API 情绪分析
- python - 我想通过迭代一个初始条件来解决这个方程组