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-Key: 46853

Url: https://administrator.de/contentid/46853

Printed on: April 19, 2024 at 08:04 o'clock

Member: DaSam
DaSam Dec 15, 2006 at 16:05:23 (UTC)
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
Member: mghelp
mghelp Dec 16, 2006 at 21:31:01 (UTC)
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.
Member: Guenni
Guenni Dec 17, 2006 at 13:12:07 (UTC)
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
Member: mghelp
mghelp Dec 17, 2006 at 13:19:13 (UTC)
Goto Top
Danke hat super funktioniert.

Gruß mghelp