Kezdőoldal » Számítástechnika » Programozás » Miért nem fut rendesen C++?

Miért nem fut rendesen C++?

Figyelt kérdés

#include <iostream>

#include <fstream>


using namespace std;


int main(){

ifstream BefB("sokszamB.txt");


ofstream KifB("1.txt");

int a,b,c;

string sor;


while(getline(BefB,sor)){

for(int i=0;i<sor.size();++i){

if(sor[i]%2==0)BefB>>a;

if(sor[i+1]%2==0)BefB>>b;

if (a>b) c=b;

else c=a;}}



KifB<<"Legkisebb paros szam:"<<c<<endl<<endl;

}


A beolvasott file legkisebb páros számát kéne kiíratni.

De egy nagyon sok soros file-nak a 3. sorának a közepéről dob ki egy értéket. Valami javaslat?


2012. máj. 28. 13:44
 1/4 anonim ***** válasza:
Azt a getline-t itt felejtsük el, string-ként beolvasol egy sort, majd páros ASCII kódú karakter feltétel szerint továbbolvasod a fájlt ekkor már int ként(Páros ASCII kódú karakter pl. a szóköz is)
2012. máj. 28. 14:02
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
Ezt egy kicsit bővebben letudnád még egyszer írni ? Mert nem teljesen értem. És köszönöm eddigi válaszod is.
2012. máj. 28. 15:03
 3/4 anonim ***** válasza:

getline(BefB,sor):A getline az aktuális pozíciótól sorvégjelig olvassa be "sor" string típusú változóba.

Ezután a következő fájl olvasás műveletek a következő sortól folytatódnak.

Beolvastad az első sort utána feltétel szerint BefB>>a vagy BefB>>b hajtja végre, mely olvasási műveletek a 2.-ik sortól kezdve történnek, lehet hogy a keresett szám az első sorba van, de ezt lehetetlen hogy megtalálja mert "a" és "b" változó a 2.-ik sortól kezdve kaphat értéket leghamarabb.

sor[i] nem az i-edik szám a sor-ba hanem az i-edik karakter, itt azt vizsgálod hogy a beolvasott sor i-edik karakterének ASCII kódja páros szám e(mint már írtam a szóköz ASCII kódja páros,mivel a gép mindent számként ábrázol, így a karaktereket is méghozzá ASCII kódtáblázat szerint) Vagyis karakterenként megvizsgálod a "sor" string-et és ha az aktuális karakter ASCII kódja páros akkor a következő sorból olvasol int-ként egy számot.

2012. máj. 28. 19:05
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Már megvan, köszi.
2012. máj. 28. 20:24

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!