Strings verketten in C++
annA
- programmiertechnik
0 Ralf Rapude0 annA
0 Daniela Koller0 annA
Hallo zusammen,
ich möchte gerne in C++ einen Doubel-Wert mit einem String
verketten... bekomme es aber nicht hin, weil ich anscheinend
noch eine Typumwandlung machen muss.
(argument passing to 'const char *' from 'double')
Vielleicht verstehe ich ja auch die Fehlermeldung falsch,
aufjeden Fall bekomme ich es nicht hin :(
Hier mein Code:
#include <iostream>
#include <string>
int
main()
{
char name[1024];
char* test = " ist so schwer ";
double gewicht;
cout << "Geben Sie Ihren Namen ein: ";
cin >> name;
cout << "Wie schwer sind Sie? ";
cin >> gewicht;
strcat(name, test);
strcat(test, gewicht);
cout << name;
}
Vielen Dank und viele Grüße
annA
Moin,
Warum benutzt du kein String Objekt?
std::string txt = " ist so schwer ";
std::string name;
cin >> name
cout << name << txt << std::endl;
chars sind für einzelne Zeichen gedacht. Ausserem laesst du einem Zeiger auf ein char Objekt zeigen (was völlig unnötig ist,weil du dich sowieso gerade auf dem Stack bewegst), dereferenzierst aber später nicht, sondern versuchst den Zeiger als String zu beackern. Ist, glaube ich, alles ziemlich durcheinander (habe allerdings lange kein C++ mehr gemacht).
Guck doch mal hier:
http://www.josuttis.com/cppbuch/allg/string1.cpp.html
Da werden ein paar Basics erklärt. Ansonsten ist vieles gut erklärt in C++ in 21 Tagen von Markt und Technik.
Gruss
Ralf
Hi Ralf,
das eigentliche Programm soll nicht Namen und Gewicht ausgeben.
Wir sollen eine Klasse Rechteck schreiben die unter anderem
die folgende Methode haben soll:
char* gibPrintString(), welche einen String mit der Beschreibung
aller Attribute der Klasse zurück gibt.
Und da ist es mein Problem diesen String zu erzeugen, der
vom Typ char* sein muss!...
Viele Grüße
annA
Hi annA
ich möchte gerne in C++ einen Doubel-Wert mit einem String
verketten... bekomme es aber nicht hin, weil ich anscheinend
noch eine Typumwandlung machen muss.
Du machst das in C, nicht in C++, wenn es C++ wäre, würdest du auch C++ Strings verwenden.
Ansonsten, schau dir mal sprintf() resp snprintf()(glaub ich die sichere heisst so) an, funktioniert wie printf, ausser dass die Funktion einen C-String ausgibt.
Gruss Daniela
Hi Daniela,
es ist C++, die Aufgabenstellung gibt mir aber die Benutzung von
C-Strings vor (warum um auch immer...=
Gruss
annA