Egy kis segítséget szeretnék az alábbival kapcsolatban, megoldható :D?
Elég banális lehet a probléma oka de nekem nem ír ki semmit a "kimenet.txt"-ben:
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
string sor;
ifstream be("bemenet.txt");
ofstream ki("kimenet.txt");
while(!be.eof()){
getline(be, sor);
}
for(int i=0; i<sor.size(); i++){
if(sor[i]%2==0){
ki<<sor[i]<<" "<<endl;
}else{
ki<<"A sor nem tartalmaz paros szamot!"<<endl;
}
}
return 0;
}
Azért ennek nekifutnék még egyszer a helyedben.
Mit csinál a while ciklusod? Azt, amit kellene?(nem)
Benne van a for ciklus a while-ban?(nem, pedig kéne)
A páros számot egyébként nem így ellenőrizzük.
Valószínű azért nem ír ki semmit a kimenetbe, mert az utolsó sor egy üres sor a bemenetben, és a for ciklusod csak az utolsót ellenőrzi (az előbb leírt hibák miatt), így nullaszor fut le a for ciklus magja.
Én sejtettem, hogy jól megy a páros ellenőrzés, de csak a véletlen folytán. A sor[i] értéke egy char, aminek a számértéke karakterkódokat jelent. Ilyenformán, hogyha te csak egyjegyű egész számoknak a paritását vizsgálod, akkor nem is lesz hiba. De csak azért nem, mert a páros számok karakterkódja páros, a páratlanoké meg páratlan, de ez lehetne fordítva is.
Továbbá ennek a táblázatnak a dec oszlopában páros számhoz tartozó összes karakterre páros számot jelezne a program.
Szóval te valószínűleg csak számokat tartalmazó sorokat olvasol, és még szóköz sincsen közöttük.
Csak annyi az egészből a lényeg, hogy a karakterkód összehasonlítása, meg a számértékeké két külön dolog.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!