2014-04-23 38 views
0
#include <iostream> 
#include <fstream> 
#include <string> 

using namespace std; 

int main() 
{ 

    ifstream plik; 

    plik.open("napisy.txt"); 
    int nr_line=0; 
    string line; 
    int ile_parzystych=0; 


    cout << "Podpunkt a)=:"<< endl; 

    if(plik.good()==false){ 
     cout << "wrong read of file!"<<endl; 
    } 

    while(getline(plik,line)) 
    { 
     if(line.length()/2 == 0) 
     { 

     ile_parzystych++; 
      if(nr_line==1) 
      {cout << "to jest pierrwsza linia - jest ona nieparzysta a więc licznik = " << ile_parzystych << endl;} 
      if(nr_line==2) 
      {cout << "to jest druga linia - jest ona parzysta a więc licznik = " << ile_parzystych << endl;} 
     } 
    } 
    plik.close(); 
    cout << endl << ile_parzystych << " <- Tyle jest linii parzystych"; 

    } 

問題是,我只有這樣的輸出:計數數目

COUT < < 「Podpunkt一個)=:」 < < ENDL;

所以它的顯示Podpunkt a)=:,並且

COUT < < ENDL < < ile_parzystych < < 「< - Tyle開玩笑linii parzystych」; 0 < - Tyl jest linii parzystych

我不知道爲什麼它不算。

+4

n/2 == 0並不意味着n是偶數 - 使用n%2 == 0 –

+0

如果行的長度爲1或0,line.length()/ 2將只爲0。 –

+0

謝謝你們,我忘了如何數學。 ] – user2870851

回答

1

nr_line保持在0整個程序,所以你的循環將永遠不會進入二級if條件

if (nr_line == 1) 

if (nr_line == 2) 
1

它看起來像你需要增加nr_line每一行? 這樣nr_line將永遠不會是0。

0

因爲nr_line的變量總是0,所以您不需要對它進行任何操作。 所以if(nr_line==1)if(nr_line==2)從來沒有匹配。