Kezdőoldal » Számítástechnika » Programozás » Üdv! Régebben feltettem itt...

Üdv! Régebben feltettem itt egy kérdést egy könyvkód megfejtéséhez. Hogyan tovább? Többi lent.

Figyelt kérdés

A régi kérdésem:Van egy könyv kód, szeretnék egy olyan programot irni ami bekérné a könyvet és a kód alapján megkeresi az adott szót majd ezt egy külön fájlban kimenti. Aki esetleg nem értené, könyv kód pl 5 14 67 367 na most a számok eggyes szavakat jelölnek

Lefelé hajlott a nap. Búcsúzóul betekintett még az erdőbe, hol hosszúra nyúlt az árnyék.Az 5=Búcsúzóul 14=árnyék és igy tovább.

Született egy épkézláb megoldás, de nagyon sok probléma volt vele.Pdf helyett a txt formátumnál kötöttem ki(igy egyszerübb)A program röviden:van 3 txt fájl,1.a kód ebbe mentek a számok,2.a szöveg ebbe került a szöveg,3.a visszafejtett szöveg.A hibái a programnak az volt hogy pl ha egy szám többször szerepelt a kódban akkor hibával kilépett, vagy a szövegben az entert is új szónak vette igy elszúszott az egész igy használhatatlan volt.Szóval nem volt hülye biztos.Annak is örülnék ha objektum orientált lenne pl elinditanánk a programot betallóznánk a szügséges fájlokat és a dekódol gomb megnyomásával már megis kapnánk a kész fájlt bár ez már csak a külcsin.

Szóval kérnék segitséget,ötletet vagy akár kész programot ezekben a dolgokban.Illetve c+ nyelv helyett mi mást tudnátok mondani ami valamivel egyszerübb és objektum orientált is?Ez pedig maga a program:

#include <fstream>

#include <iterator>

#include <algorithm>


using namespace std;


int main()

{

ifstream ifsNumbers("numbers.txt");

ifstream ifsText("text.txt");

ofstream ofs("words.txt");


vector<int> vNumbers( istream_iterator<int>(ifsNumbers), (istream_iterator<int>()) );

sort(vNumbers.begin(), vNumbers.end());


int cnt = 0;

auto cit = vNumbers.cbegin();

copy_if( istream_iterator<string>(ifsText), istream_iterator<string>(), ostream_iterator<string>(ofs, "\n"), [&] (const string&)

{

if (cit != vNumbers.cend() && cnt++ == *cit)

{

cit++;

return true;

}

else

{

return false;

}

});


ifsNumbers.close();

ifsText.close();

ofs.close();

return 0;

}



2014. márc. 8. 21:17
1 2 3
 21/22 SimkoL ***** válasza:
Az utolsó szám után még volt szóköz és emiatt akart még olvasni egyet mivel még nem volt eof ebből kifolyólag egy érdekes számot 'jegyzett be'. Mondtam csak egy rövid kis valami az egész, igazából a működést nem befolyásolja nyomsz egy 'ok'-t és ennyi.
2014. márc. 9. 20:57
Hasznos számodra ez a válasz?
 22/22 A kérdező kommentje:
Rendben van köszönök mindent.Ez a program igazából megoldotta a problémám.Most már csak egy jó nagy adag szerencse kell hogy sikerüljön megfejteni amit szeretnék:)
2014. márc. 9. 21:27
1 2 3

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!