说我有这样的文件:
1234
56e8
1245
有没有办法可以一次读取一个字符并对它们执行操作?或者,有没有办法可以读取一行并从中提取每个字符?
我一直在尝试使用strtok
并使用分隔符,但似乎无法找到可以完成此任务的分隔符。
答案 0 :(得分:0)
如果你想检查每一个字符,就不需要使用strtok。
有很多这方面的教程。 此代码将一次读取一个字符。
FILE * pFile;
int c;
pFile=fopen ("myfile.txt","r");
if (pFile==NULL)
perror ("Error opening file");
else
{
do {
c = fgetc (pFile);
} while (c != EOF);
}
fclose (pFile);
答案 1 :(得分:0)
是的,这是可能的。逐字逐句阅读的简单方法是使用fgetc
:
int c;
FILE *fp=fopen("filename.txt","r");
if(fp==NULL)
{
printf("Error opening file!");
return -1;
}
while((c=fgetc(fp)!=EOF)
{
//character is read in c
//do something
}
fclose(fp);
对于逐行阅读,请使用fgets
:
char line[100];
FILE *fp=fopen("filename.txt","r");
if(fp==NULL)
{
printf("Error opening file!");
return -1;
}
while ( fgets ( line, 100 , fp ) != NULL ) /* reads a line */
{
//one line is stored in line
//do something with it
}
fclose(fp);