C++ ^@和^A作为c+中的输出+;
我正在尝试将代码的输出保存到文本文件中。因此,我声明并打开了文件,如下所示C++ ^@和^A作为c+中的输出+;,c++,file,C++,File,我正在尝试将代码的输出保存到文本文件中。因此,我声明并打开了文件,如下所示 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'; } 但是在文本文件中我看到
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';
}
但是在文本文件中我看到
^@ ^@ ^@ ^@ ^@ ^@ ^@ ^A ^@ ^@
这似乎很愚蠢,但我在哪里犯了错误。您需要了解字符的数值与它所代表的字符之间的差异。例如,字母
'A'
的数值为65,数字'0'
的数值为48(请参阅)
ASCIINUL
字符的数值为零,作为int
将打印为0
,但它不对应于任何字母、数字或标点符号。一些文本编辑器将显示特殊序列^@
等字符,以区别于有效字符,如'0'
或'
问题(我从阅读您的评论中猜到)是任何基于字符的类型(我猜uint8
是的类型别名)被格式化的输出(和输入)操作符视为字符
如果要将其输出为整数,则需要使用另一个整数类型,或转换为另一个整数类型(例如,静态转换(输出[i])
)。请阅读相关内容以及。最后,学习如何创建一个。另外,请告诉我们您是如何检查文件内容的。输出是什么
?好的。我想这就是问题所在。我将输出声明为uint8。但是,它的值总是0或1。声明为bool后,它工作正常。谢谢。我正要写同样的东西,但是你写得太快了,解释得很好。
^@ ^@ ^@ ^@ ^@ ^@ ^@ ^A ^@ ^@