2016-11-18 57 views
-1

打印特定行时的无尽循环我需要打印文档的第三行。从文档

我的代码是:

#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号线相反的,我得到了一台无感无限循环。

任何消耗?

+1

你无休止的分配i = 2。 – schil227

+0

为了澄清以前的评论:'我= 1'是一个任务,而不是比较。与'=='做比较。 –

+1

当他修复它仍然无法工作,因为他不会阅读前两行。 –

回答

0

你想这样的:

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; 
    } 
} 

这将打印文件的第3行。

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

+0

@WeatherVane完成,因为我写了...未经测试;-) –

+0

谢谢,现在我看到我犯了多么愚蠢的错误。 =(给valye),并且我与sevond获得了错误。谢谢 – DoktorD96

-1

在这里,这样做。阅读每一行,然后在第三行打印它,你就完成了。无需全部读取10.当您打开文件时,您需要关闭它。不要只是假定操作系统会清理你的混乱。

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); 
    } 
} 
fclose(dat); 
+0

downvote到底是什么? –