我正在尝试将一组double值写入文件。我将文件指定为“名称”.dat扩展名。我成功地写下了我想要的值,但是我写了一个我以前从未见过的符号,也没有在线找到的符号。
以下是我写的所有内容:
fprintf(filePath,"%lg,%lg,%lg\n",struct[i].x,struct[i].y,struct[i].z);
以下是通过文本编辑器查看文件中某些行的示例:
double,double,^Sdouble
double,double,^Sdouble
double,double,^Sdouble
依旧.....
在每行的第三组数据之前出现相同的 ^ S 符号。任何人都能解释这个符号的含义吗?我正在通过emacs查看此文件。它可能有助于解决我遇到的一些问题。
感谢您的考虑和帮助。
答案 0 :(得分:1)
您正在使用显示控制字符的编辑器查看您的文件:
# echo -ne "\x13" | cat -e
^S
如何到达那里没有人能够在没有看到代码的情况下告诉你。
答案 1 :(得分:0)
我不知道您使用什么工具来查看文本文件,但我怀疑是Unix环境,所以可能是less
命令。
less
命令会将控制字符转换为^ S,使用^作为Control键的标记。因此,您可能会将Control-C视为^ C编写。
如果要确保文本文件中的字节确实是什么,可以使用od
或xxd
程序将文件视为字节数。阅读每个人的手册页。
我怀疑这个字符是进入你的文件的,因为你使用的是未设置的变量,或者指向非法位置的字符串指针。
答案 2 :(得分:-1)
这是ctrl S代码
在某些* nix系统上,当你看到一个^字符时,它通常意味着ctrl + character