从Linux到Windows 8读取c文件会产生奇怪的格式
问题(摘要) 为什么在读取文件时,在捕获文本文件的第一个实际字符之前,前两个字符被打印为问号?然后,每隔一秒钟,从Linux到Windows 8读取c文件会产生奇怪的格式,c,windows,debian,readfile,C,Windows,Debian,Readfile,问题(摘要) 为什么在读取文件时,在捕获文本文件的第一个实际字符之前,前两个字符被打印为问号?然后,每隔一秒钟,fgetc就会出现一个空格,但是.txt文件没有这个空格 例如对于test.txt,格式为 2,123.5,12312.02,12.3,222.35 如果我循环一个fgetc并打印每个字符(要检查代码段,请转到下面的AP1) 为什么会这样?我只想看文件 详细信息 所以我要做的是在Windows8笔记本电脑上读取一个名为test.txt的文件,该笔记本电脑与Debian8计算机联网。我
fgetc
就会出现一个空格,但是.txt文件没有这个空格
例如对于test.txt,格式为
2,123.5,12312.02,12.3,222.35
如果我循环一个fgetc
并打印每个字符(要检查代码段,请转到下面的AP1)
为什么会这样?我只想看文件
详细信息
所以我要做的是在Windows8笔记本电脑上读取一个名为test.txt的文件,该笔记本电脑与Debian8计算机联网。我认为这是一种通过VAR11N-300的点对点连接。c程序在Debian计算机上执行。在后台,SAMBA正在运行(虽然我不确定它是如何工作的,但我只是跟随另一篇文章,它工作得很好,所以我很高兴)来连接两台计算机(如果我说的是smack,请告诉我)
我最初的想法是,我可以使用fscanf来读取文件,因为它的格式是一致的,不幸的是,它不能正常工作,因为它会包含这两个?字符,然后认为它位于文件的末尾。这就是为什么我从AP1中截取的代码中去掉了feof(fptr)。然后我改变了策略,决定使用fgetc检索每个角色
文件格式如下
整数(让我知道有多少个坐标),x1,y1,x2,y2等
如果你还需要知道什么来回答我的问题,请告诉我
AP1代码段
char c;
int i=0;
do
{
c = fgetc(fptr);
printf("for i = %d, c = %c\n",i,c);
i++;
} while(i<10)
charc;
int i=0;
做
{
c=fgetc(fptr);
printf(“对于i=%d,c=%c\n”,i,c);
i++;
}当(i)高亮显示代码并按ctrl+KY键时,您的文件是带有BOM.P.S的UTF-16。如果您的测试文件是使用文本编辑器创建的,请忽略它,并使用将与您的程序交互的软件实际创建的文件。
char c;
int i=0;
do
{
c = fgetc(fptr);
printf("for i = %d, c = %c\n",i,c);
i++;
} while(i<10)