我正在尝试编写一个C程序来获取文件中的字符,该字符由一些字节组成,让我们说三个如下
fseek(fp,3,SEEK_CUR);
我希望打印特定字节所代表的字符。例如,如果我的文件包含下面的内容,我需要打印每个第三个字符。
//reading from file//
问题是在使用while
循环后,我无法打印所需的结果。打印的第一个字符是第四个字符而不是第三个字符。
while(fp!=EOF)
{
fseek(fp,3,SEEK_CUR);
ch = fgetc (fp);
printf("%c",ch);
}
请你帮我理解这个错误是什么。谢谢!
答案 0 :(得分:2)
fgetc
将文件偏移量移1。请尝试以下方法:
fseek(fp,3,SEEK_CUR);
while(fp!=EOF)
{
ch = fgetc (fp); // moves offset by 1
fseek(fp,2,SEEK_CUR); // moves offset by another 2
printf("%c",ch);
}
答案 1 :(得分:0)
fgetc还将文件指针前进一个字符。因此,循环的每次迭代都会使文件指针前进4个字符。出于您的目的,听起来您只想将3更改为2:fseek(fp,2,SEEK_CUR);