我在文件中有“NAME”这个单词,我想把它读出来,不用fscanf函数,用一个字符一个字符地读,比如fgetc函数,需要将读文件指针移动,所以我用了fseek函数,想让它向前移动一个位置:
fseek(fp,1,SEEK_CUR);
我最开始时用下面代码,读到了'N'这个字符:
ch=fgetc(fp);
printf("%c",ch);
接下来用fseek函数再往下读,我显示的总是一个'?'字符,没有读出'A'字符,结果如下:
完整代码如下:
#include <cstdio>
#include <cstring>
#include <fstream>
using namespace std;
int main(){
FILE *fp;
fp=fopen("test.txt","r+");
if(fp==NULL){
printf("there is no character.");
return 0;
}
char ch;
char test[255];
ch=fgetc(fp);
printf("%c",ch);
fseek(fp,1,SEEK_CUR);
ch=fgetc(fp);
printf("%c",ch);
}
...
You don’t need to
r+
You don’t need to
fseek
. fgetc will automatically advance the current reading position of the fileDid you edit the file with Notepad? Do you
fseek(fp, 4, SEEK_CUR);
try it?