2016-11-18 26 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到底是什麼? –