首页 > 解决方案 > ^@ 和 ^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 ^@ ^@ 

看起来很傻,但是我哪里做错了。

标签: c++file

解决方案


你需要了解 a 的数值char和它所代表的字符之间的区别。例如,字母'A'的数值为 65,数字'0'的数值为 48(参见ASCII)。

ASCIINUL字符的数值为零,将作为 anint打印,0但它不对应任何字母、数字或标点符号。一些文本编辑器会将此类字符显示为特殊序列^@,以将它们与有效字符(例如'0'或)区分开来'@'


推荐阅读