使用fgetc和fgets从.txt文件中提取文本

时间:2014-12-04 17:32:55

标签: c

我正在编写从.txt文档中提取文本的代码,而我在fgets()调用时遇到问题。

FILE *textFile
// Opening file and checking for error in opening
  textFile = fopen("textfile.txt", "r");

  if (textFile != NULL) {
    while((oneCharacter = fgetc(textFile)) != EOF) {
      if (inputFromUser == 1) {
        fgets(textLine, 80, textFile);
        length = strlen(textLine);
        printf("%s\n", textLine);
      }

当我打印lineOfText时,它似乎省略了文本文件的第一个字母。例如,如果我要提取的文本是:

StackOverflow is great! 

它将打印:

tackOverflow is great!

我是否遗漏了fgets()语句的语法?

1 个答案:

答案 0 :(得分:1)

使用

while(fgets(textLine, 80, textFile) != NULL)
{

//  Code goes here
}

由于你正在进行fgetc(),你已经在阅读文件中的第一个字符了,其余字符由fgets()读取,因此您看到输出中没有第一个字符