Funktion funktioniert nicht
-
Hallo mal wieder!
Meine Funktion liefert mir komisherweise keinen Wert zurück!
Irgendwie scheine ich irgendetwas vergessen zu haben, aber ich komm nicht drauf was!
Aber seht selbst:
Header-File:#include <iostream> #include <fstream> #include <string> #include <sstream> using namespace std; //Folgende Funktionen prüfen die zu verwendenden variablen auf ihre kompatibilität //mit der in diesem header verwendbaren. template<class T> bool check(T t) {return false;} template<> bool check(string t) {return true;} template<> bool check(char* t) {return true;} template<> bool check(char t) {return true;} template<class T> bool convert(T t, string transfer) { if(!check(t)) { ostringstream zahl; zahl << t; transfer = zahl.str(); cout << "transfer: " << transfer << endl; //liefert den wert '22' return true; } else return false; }Main-file:
#include <iostream> #include <header1.h> using namespace std; int main() { int e=22; string readin; string test; char data[10] = "h.txt"; read(readin, data); //Funktion tut eig. nichts zur sache cout << "h.txt:\n" << readin << endl; cout << check(e) << endl; // prüft den Typ convert(e, test); //...und hier irgendwo klemmts... cout << "test: " << test << endl; //...da hier kein wert ausgegeben wird write(test, data); system("pause"); }Für Hilfe wäre ich sehr dankbar... wirklich!
-
Du musst an die convert-Funktion eine String-Referenz übergeben, wenn du den Originalstring verändern willst. Ansonsten verändert du nur die Kopie.
bool convert(T t, string transfer) --> bool convert(T t, string &transfer)
-
es muss wohl
bool convert(T t, string& transfer)statt
bool convert(T t, string transfer)heißen, dann sollte es funktionieren
-
Ahh! ja! jetzt läufts
mist...an die Referenz hab ich nicht gedacht! Vielen vielen Dank für die schnelle Antwort!