Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Wczytywanie pliku i sprawdzanie czy dana linia jest parzysta.

Ostatnio zmodyfikowano 2014-03-23 11:39
Autor Wiadomość
LuqazPL
Temat założony przez niniejszego użytkownika
[C++] Wczytywanie pliku i sprawdzanie czy dana linia jest parzysta.
» 2014-03-23 10:09:47
Witam!

Napisałem program, który ma z pliku txt sczytywać kolejne linie i sprawdzać czy jest ona parzysta, lecz przy kompilacji wyskakuje błąd:

mingw32-g++.exe -std=c++11 -g    -c "C:\Users\Łukasz\Desktop\Program Napisy\napisy.cpp" -o "C:\Users\Łukasz\Desktop\Program Napisy\napisy.o"
C:\Users\Łukasz\Desktop\Program Napisy\napisy.cpp: In function 'int main()':
C:\Users\Łukasz\Desktop\Program Napisy\napisy.cpp:33:13: error: 'licznik' was not declared in this scope
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings (0 minutes, 0 seconds)
 

C/C++
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()

{
    ifstream napisy;
    ofstream parzyste;
    napisy.open( "napisy.txt" );
    parzyste.open( "parzyste.txt" );
   
    if( napisy )
   
   
    {
        string linia;
       
        int dlugosc;
        while( getline( napisy, linia ) )
        {
            dlugosc = linia.size(); // dlugosc lini
            int licznik = 0; // zlicza ilosc parzystych
            if( dlugosc % 2 == 0 )
           
                 licznik = licznik + 1;
           
           
        }
    }
    parzyste << licznik;
   
    napisy.close();
    parzyste.close();
}
P-107048
alixir
» 2014-03-23 10:18:12
Przesuń deklarację
int licznik = 0;
 na początek programu
P-107049
LuqazPL
Temat założony przez niniejszego użytkownika
» 2014-03-23 10:25:37
nadal występuje ten sam błąd, dodam że miejsce błędu zostaje wskazane przy 34 lini przy części
parzyste << licznik;
P-107050
OczkoSX
» 2014-03-23 11:12:42
Musi działać. Przenieś int licznik; zaraz po using namespace.
P-107053
LuqazPL
Temat założony przez niniejszego użytkownika
» 2014-03-23 11:22:55
Przeniosłem zaraz po
using namespace std;
 i teraz ten sam błąd występuje przy
dlugosc = linia.size();
P-107054
OczkoSX
» 2014-03-23 11:28:36
Skompilowałem to:
C/C++
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int licznik = 0; // zlicza ilosc parzystych

int main()

{
    ifstream napisy;
    ofstream parzyste;
    napisy.open( "napisy.txt" );
    parzyste.open( "parzyste.txt" );
   
    if( napisy )
   
   
    {
        string linia;
       
        int dlugosc;
        while( getline( napisy, linia ) )
        {
            dlugosc = linia.size(); // dlugosc lini
            if( dlugosc % 2 == 0 )
           
                 licznik = licznik + 1;
           
           
        }
    }
    parzyste << licznik;
   
    napisy.close();
    parzyste.close();
}
 i działa...
P-107055
leon_w
» 2014-03-23 11:29:27
Jak nic innego nie przestawiłeś to powinno działać. Wcześniej "licznik" był zadeklarowany w pętli i tylko w tej pętli był widoczny. Nie trzeba go deklarować poza funkcją, wystarczy poza pętlą.
P-107056
LuqazPL
Temat założony przez niniejszego użytkownika
» 2014-03-23 11:39:54
OK! Wielkie dzięki!
P-107058
« 1 »
  Strona 1 z 1