Problem mit void funktion...compilerprobleme
-
Mein compiler gibt mir bei dieser Funktion:
void gethidefile (string hidename, string filecontent)
{
fstream hidefile;
hidefile.open(hidename.c_str());
hidefile.seekg (0, ios::end);
long hidesize = hidefile.tellg();
hidefile.seekg (0, ios::beg);
hidefile.read(filecontent,hidesize);
hidefile.close();
}folgende Fehlermeldung:
15 test.h variable or field
gethidefile' declared void 15 test.hstring' was not declared in this scope
15 test.hstring' was not declared in this scope 16 test.h initializer expression list treated as compound expression 16 test.h expected,' or `;' before '{' tokenich glaub das könnte für mich ein peinlich werden, aber ich blicks gerade im moment einfach echt mal gar nicht!
habe bis jetzt aber auch nur immer mit ap classen geproggt...in den usa auf der highschool nen AP_c++ kurs belegt und die hatten ihre eigenen classes...dann seit jahren nix mehr gamacht nun wieder angefangen zu programmieren und nun scheiter ich schon dran eine funktion zu schreiben.... rofl... oder auch eher nicht...
vielen dank schon mal für eunre antwort
-
Die erste Meldung ist seltsam - kollidiert der Funktionsname etwa mit einem Variablennamen*? Die nächsten beiden Meldungen solltest du beseitigen können, indem du <string> einbindest (und std::string verwendest).
Inhaltlich: Die Funktion ist (a) falsch (read() erwartet keinen std::string, sondern ein ausreichend großes char-Array) und (b) sinnlos (um später an den Inhalt von 'filecontent' ranzukommen, müsstest du den Wert per Referenz übernehmen).
* oder der Compiler erkennt das Ganze nicht als Funktionskopf, weil er den Bezeichner 'string' nicht kennt - sondern als Variablendefinition.
-
Liest sich wie wenn davor schon irgendwo der Fehler ist, ein Fehlendes ";" oder sowas.
-
verwende bitte vernünftige Topics

-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
also <string> ist eingebunden....
funktionsname kollidiert auch mit keinem fariablennamen....
hmm... ist es denn möglich einen array zu übergeben?? bzw besteht die möglichkeit den buffer durch return(xy) auszugeben?
vielen dank bis jetzt schon mal für die hilfe!
-
p.s.: sorry wegen dem topic..... wird nicht wieder vorkommen...
; fehlt aber auch nicht.... aber danke...
-
Vielleicht fehlt da das "using namespace std;"?
Ist IMO sowieso schlechter Stil, aber wenn du einfach nur "string" und "fstream" schreibst musst du dir den "std" Namespace reinholen, sonst wird er das so nicht finden. Oder eben "std::string" und "std::fstream" schreiben. (Und natürlich std::ios::... etc.)
-
#include <iterator> #include <string> #include <fstream> #include <algorithm> #include <stdexcept> void get_hide_file(std::string const& filename, std::string& content) { content = ""; std::ifstream file_stream(filename.c_str()); if (!file_stream) throw std::invalid_argument("file does not exist"); std::copy(std::istream_iterator<char>(file_stream), std::istream_iterator<char>(), std::back_insert(content)); }und es geht

-
ganz vielen dank!!!!
-
ilac_cali schrieb:
p.s.: sorry wegen dem topic..... wird nicht wieder vorkommen...
Entschuldigen ist schön ... korrigieren ist besser. :p

Hint: als registriertes Mitglied kannst Du Deine Posts (und damit auch den Titel) editieren.
Vergiss nicht, dass dieser Thread später einmal Anderen helfen kann, ihr Problem zu lösen ... aber nur, wenn sie nicht darauf kommen müssen, bei der Forumssuche den Begriff "schlach:" anzugeben...
Gruß,
Simon2.
-
das war mal echt ein guter Einwand, vom editieren hatte ich nicht gewusst... hoffe so ist es besser!
-
ilac_cali schrieb:
... hoffe so ist es besser!

Super !Danke,
Simon2.