mghelp
Goto Top

Ascii (Text, Email Adresse) umwandeln in dezimal und dann in "Datei speichern

#include<iostream>
#include <ctype.h>
using namespace std;

int main()
{
cout<<"Gib deine Email Adresse ein:\n";
cout<<"Druecke 0 zum beenden\n";
char eingabe;
int ascii;

do
{
cin>>eingabe;
ascii=eingabe;
cout<<"%"<<ascii;
}
while(eingabe!='0'); //solange eingabe keine 0 war!
cin.get();

}

Wenn man muster@test.de eingibt bekommt man:
%109%117%115%116%101%114%64%116%101%115%116%46%100%101

ES wird zwar die eingegebene Adresse umgewandelt, aber schleife hört nicht auf.

Wie kann man die Schleife nur 1 mal durchlaufen lassen?
(wahrscheinlich nicht mit do ->while?)

Und wie kann man die Ascii-Zeichen in eine Datei speichern?
(in der Datei ist dann die Email-Adresse in Ascii z.B. %109,wie oben)

Danke für Hilfe

mgehelp

Content-ID: 46853

Url: https://administrator.de/forum/ascii-text-email-adresse-umwandeln-in-dezimal-und-dann-in-datei-speichern-46853.html

Ausgedruckt am: 22.12.2024 um 22:12 Uhr

DaSam
DaSam 15.12.2006 um 17:05:23 Uhr
Goto Top
Hi,

deine Schleife wird ja erst dann beendet, wenn Du eine "0" - also die taste über dem "o" und "p" drückst. Du hast vermutlich das Zeichen "0" mit dem Nullbyte verwechselt - aber das kann man sowieso nicht mit der Tastatur eingeben ...

cu,
Alex
mghelp
mghelp 16.12.2006 um 22:31:01 Uhr
Goto Top
#include<iostream>
#include <fstream.h>

int main()
{ char st[60] ;
cout << "\nGib ein Wort : " ;
cin >> st ;
int n = 0 ;
while( st[n] )
{
cout <<"%"<<(int) st[n] ;
n++ ;

}
ofstream out("test.txt");
out<<"%"<<(int)st[n];
getchar();
return 0;
}
Hab hinbekommen, dass es solange durchläuft wielang die zeile ist.

aber jetzt will ich noch (die Ausgabe in eine Datei speichern) wie es ausgegeben wurde %zahl%zahl.

Frage wie kann ich das hinbekommen.
Guenni
Guenni 17.12.2006 um 14:12:07 Uhr
Goto Top
@mghelp

Hi,

out<<"%"<<(int)st[n];

Da du vorher in deiner Schleife n bis Wortlänge + 1 hochgezählt hast,
schreibst du mit dieser Anweisung \0 in die Datei.
Du mußt das Schreiben einzelner Zeichen wieder in einer Schleife wiederholen,
oder gleich in die erste Schleife einbauen.

int main(int argc,char *argv){
 char st[100];
 int n=0;
 ofstream out("c:\test.txt",ios::out);  
 cout << "\nGib ein Wort : " ;  
 cin >> st;
 while(n<strlen(st)){
  cout <<"%"<<(int) st[n] ; // Ausgabe am Monitor  
  out <<"%"<<(int) st[n] ; // Ausgabe in Datei  
  n++;
 }
 getch();
 return 0;
}

Grüße
Günni
mghelp
mghelp 17.12.2006 um 14:19:13 Uhr
Goto Top
Danke hat super funktioniert.

Gruß mghelp