c从文件中逐个读取字符?

时间:2014-10-20 14:58:24

标签: c

说我有这样的文件:

1234
56e8
1245

有没有办法可以一次读取一个字符并对它们执行操作?或者,有没有办法可以读取一行并从中提取每个字符?

我一直在尝试使用strtok并使用分隔符,但似乎无法找到可以完成此任务的分隔符。

2 个答案:

答案 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);