baris Geschrieben 8. August 2007 Geschrieben 8. August 2007 hallo erstmal wie kann man den char speicher erhöhen, sodass z.B. 10 buchstaben erkannt werden. Normalerweise kann man ja nur 8 bit = 1 buchstaben eingeben gibt es dafür noch eien zusätzlichen befehl? Zitieren
Guybrush Threepwood Geschrieben 8. August 2007 Geschrieben 8. August 2007 Ein char ist immer nur ein einzelnes Zeichen. Wenn du eine Zeichenkette speichern möchtest kannst du das zum Beispiel in einem Array von Chars machen. z.B. char Name[32] erzeugt dir ein Array für 32 Zeichen. Allerdings beginnt der Index bei 0 so dass du auf die Zeichen Name[0] bis Name[31] zugreifen kannst. Zitieren
marcom Geschrieben 9. August 2007 Geschrieben 9. August 2007 und Name[31] muss den Wert 0 haben (nicht das Zeichen '0') also entweder Name[31] = 0; oder Name[31] = '\0'; Sonst schießt du bei (fast) jeder Zeichenkettenoperation über das Array hinaus... Zitieren
Guybrush Threepwood Geschrieben 10. August 2007 Geschrieben 10. August 2007 und Name[31] muss den Wert 0 haben (nicht das Zeichen '0') also entweder Name[31] = 0; oder Name[31] = '\0'; Sonst schießt du bei (fast) jeder Zeichenkettenoperation über das Array hinaus... Nein, nach dem letzten Zeichen der Zeichenkette muss eine binäre 0 kommen. Das heißt wenn da zum Beispiel Martin drin steht steht an 7. Stelle die 0 um das Ende zu markieren. Da das aber sowieso von fast allen String einlese Funktionen zu gemacht wird ist das erstmal nicht so wichtig für den Autor. Zitieren
baris Geschrieben 10. August 2007 Autor Geschrieben 10. August 2007 hab vor 2-3 Tagen mit C++ angefangen. Ich habe ein Programm geschrieben, dass nach Eingabe des Durchmessers bzw des Radius, den Flächeninhalt, Umfang etc. eines Kreises berechnet. Das Programm fragt, was ich angeben werde. Durchmesser oder Radius. Und ich möchte halt ddie Wörter ganz ausschreiben können. Wenn ich den Speicher von char erweiter, dann sagt das Programm, dass ich von Int nach char konvertieren soll.. Zitieren
carstenj Geschrieben 10. August 2007 Geschrieben 10. August 2007 Hi, Code ist immer hilfreich bei sowas. C++ bietet übrigens auch elegantere Möglichkeiten, als mit char und Zeigern zu hantieren. Zitieren
baris Geschrieben 10. August 2007 Autor Geschrieben 10. August 2007 Hi, Code ist immer hilfreich bei sowas. C++ bietet übrigens auch elegantere Möglichkeiten, als mit char und Zeigern zu hantieren. ist nicht ein profi code aber egal^^ #include <iostream.h> int main() { char wahl; double radius, durchmesser; double A, U; const double pi = 3.1415926535897932384626433832795; cout<<"Geben Sie den Durchmesser oder den Radius ein!"<<endl; cout<<"Geben Sie nur den Anfangsbuchstaben ein! "; cin>>wahl; if (wahl == 'D') { cout<<"\nDurchmesser = "; cin>>durchmesser; radius = durchmesser/2; A = radius * radius * pi; U = durchmesser * pi; cout<<"Der Flaecheninhalt des Kreises beträgt = "<<A<<endl; cout<<"Der Umfang des Kreises beträgt = "<<U<<endl<<endl; } if(wahl == 'R') { cout<<"\nRadius = "; cin>>radius; A = radius * radius * pi; U = radius * 2 * pi; cout<<"Der Flächeninhalt des Kreises beträgt = "<<A<<endl; cout<<"Der Umfang des Kreises beträgt = "<<U<<endl<<endl; } system("pause"); } Zitieren
Klotzkopp Geschrieben 10. August 2007 Geschrieben 10. August 2007 Und was ist jetzt das Problem? Was hoffst du zu erreichen, wenn du den "char speicher erhöhst"? Zitieren
baris Geschrieben 10. August 2007 Autor Geschrieben 10. August 2007 dass ich anstatt nur einem buchstaben halt mehrere eingeben kann Zitieren
Klotzkopp Geschrieben 10. August 2007 Geschrieben 10. August 2007 Nimm statt char std::string. Dafür brauchst du noch #include <string> iostreeam.h ist übrigens falsch, das .h muss weg. Dafür liegen cin und cout im Namespace std, d.h. entweder schreibst du jeweils std:: vor jedes cin oder cout, oder du verwendest eine using-Direktive: using namespace std; (vor deiner main-Funktion) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.