从文档打印特定行时无限循环

时间:2016-11-18 19:20:58

标签: c file line

我需要打印文档的第三行。

我的代码是:

#include "stdafx.h"
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
    FILE * dat=NULL;
    char linija[255];
    char linija2[255];
    dat = fopen("ulaz.txt", "r");
    for (int i = 0; i < 10; i++)
    {
            if ( i = 2 )
            {
                fgets(linija2, 255, dat);
                printf("Vrednost 3 linije iz datoteke ulaz.txt je:\n\n%s\n", linija);
            }
            fgets(linija, 255, dat);

    }
return 0;
}

而不是获得第3行,我在控制台中得到一个无意义的无限循环。

任何sugestions?

2 个答案:

答案 0 :(得分:0)

你想要这个:

traverse()

这将打印文件的第3行。

免责声明:这是未经测试,非错误检查和不完整的代码,只是为了提供一个想法。

答案 1 :(得分:-1)

在这里,这样做。阅读每一行,然后在第三行打印它,你就完成了。没有必要阅读所有10.当您打开文件时,您需要关闭它。不要以为操作系统会清理你的混乱。

FILE * dat=NULL;
char linija[255];

dat = fopen("ulaz.txt", "r");
for (int i = 0; i < 3; i++)
{
   fgets(linija, 255, dat);
   if ( i == 2 )
   {
      printf("Vrednost 3 linije iz datoteke ulaz.txt je:\n\n%s\n", linija);
      return;
   }
}