Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: problema criptare simpla  (Citit de 4529 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
EmanuelAchirei
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 10



Vezi Profilul
« : Martie 06, 2011, 23:04:10 »

Citat
#include <iostream>
#include <fstream>
using namespace std;
int main()
{char x;
fstream f("intrare.txt",ios::in);
fstream g("iesire.txt",ios::out);
while(!f.eof())
{f>>x;
x=x+3;
g<<x;
}
f.close();
g.close();
}
Programul citeste un text dintr-un fisier text, iar apoi il cripteaza(creste valoarea codului ASCII a literei cu 3).
In urma criptarii apar urmatoarele disfunctionalitati:
1.programul nu citeste spatiile;
2.programul adauga un caracter(aleatoriu, cred) la sfarsitul materialului criptat.
Care ar fi problema?
Memorat
palcuiealex
Strain
*

Karma: 7
Deconectat Deconectat

Mesaje: 43



Vezi Profilul
« Răspunde #1 : Martie 07, 2011, 00:15:41 »

Programul tău îți citește spațiile, dar ți le „criptează” împreună cu ultimul caracter care este endline '\n'.
Dacă vrei să nu se întâmple asta, pune condiția asta:
Cod:
if (x!=' ' && x!='\n')
Memorat
nparfene2004
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 81



Vezi Profilul
« Răspunde #2 : Martie 07, 2011, 10:17:59 »

Intr-adevar programul nu citeste spatiile.
Operatorul >> nu poate fi utilizat asa pentru a citi un sir cu spatii, deoarece valoarea returnata este de tip intreg, nu un obiect istream.
Solutia cea mai simpla este folosirea functiei get() sau getline().
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines