Mam plik tekstowy w którym znajdują się liczby zakończone zerem lub jedynką, czyli np. 10010001, 100110010 itd.
Napisałem program, który pobiera dane z pliku tekstowego, a następnie sprawdza czy liczba jest parzysta. Rozwiązałem to w ten sposób, że stworzyłem zmienną char, a za pomocą .length()-1 pobieram ostatnią cyfrę z danej liczby. Mój kod programu wygląda tak:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream plik;
plik.open("liczby.txt", ios::in);
string dane;
char znak;
int licz = 0;
while (!plik.eof())
{
getline(plik, dane);
znak = dane[dane.length()-1];
if (znak == '0')
{
licz++;
}
}
cout << licz << endl;
return 0;
}
W tym momencie pokazuje mi poprawną ilość liczb. Ale ja dopisałem do pliku tekstowego dodatkowo liczby: 292, 294, 306, 408. Więc teraz, aby podliczyć wszystkie parzyste, zmieniłem warunek, i wiersz 20 kodu wygląda następująco:
if (znak == '0' || '2' || '4' || '6' || '8')
I w tym momencie kompilator pokazuje mi, że liczb parzystych jest 1004. A ja dopisałem tylko 4 parzyste, więc powinno ich być 504.
Poprosiłbym o pomoc, być może ten warunek z if z 20 wiersza źle napisałem.