Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Anfänger: Öffnen und Speichern von Strings klappt nicht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]
000
17.08.2003, 11:54 Uhr
~pmw
Gast


Hallo!

Wie kann ich einen (binären) String aus einer Datei laden und wieder in eine andere Datei speichern? Warum funktioniert mein Beispiel nicht?

Viele Grüße
pmw



C++:
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[ ])
{
   FILE *datei;
   string inputfile;
   string outputfile;
   string data;

   inputfile = argv[1];
   outputfile = argv[2];

   ifstream file(inputfile);
   file>>data;    

   ofstream file(outputfile);
   file<<data;
    
   cout << inputfile << endl << outputfile;;
   getchar();
              
   return 0;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.08.2003, 12:02 Uhr
virtual
Sexiest Bit alive
(Operator)


Doppelter Bezeichner "file", würde ich mal sagen: Benenne file in ifile resp. ofile um...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.08.2003, 12:04 Uhr
Pablo
Supertux
(Operator)


ich konnte es gar nicht kompilieren.

Code:
u.cpp: In function `int main(int, char **)':
u.cpp:8: `FILE' undeclared (first use this function)
u.cpp:8: (Each undeclared identifier is reported only once
u.cpp:8: for each function it appears in.)
u.cpp:8: `datei' undeclared (first use this function)
u.cpp:16: `ifstream' undeclared (first use this function)
u.cpp:16: parse error before `('
u.cpp:17: `file' undeclared (first use this function)
u.cpp:19: parse error before `('
u.cpp:23: implicit declaration of function `int getchar(...)'


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.08.2003, 12:09 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


FILE *datei

ist sowieso überflüssig, er benutzt ja kein fopen...

außerdem ist bei der drittletzten Zeile ein ; zuviel
--
class God : public ChuckNorris { };

Dieser Post wurde am 17.08.2003 um 12:10 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.08.2003, 12:10 Uhr
~pmw
Gast



Zitat:
virtual postete
Doppelter Bezeichner "file", würde ich mal sagen: Benenne file in ifile resp. ofile um...

Das ändert leider auch nichts
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.08.2003, 12:11 Uhr
Oliver
S2-Pixelgeneral


Was kommt denn bei dir für ein Fehler?
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.08.2003, 12:13 Uhr
~pmw
Gast



Zitat:
Oliver Müller postete
Was kommt denn bei dir für ein Fehler?


LZ77.cpp: In function `int main(int, char**)':
LZ77.cpp:16: variable `std::ifstream eingabe' has initializer but incomplete type
LZ77.cpp:19: variable `std::ofstream ausgabe' has initializer but incomplete type
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.08.2003, 12:18 Uhr
~pmw
Gast


Gibt es vielleicht auch eine andere Möglichkeit?

MeineDatei = fopen(inputfile, "r");
fread(???, ???, ???, MeineDatei);
fclose(MeineDatei);

Leider habe ich hier keine Ahnung was bei den Fragezeichen hinkommt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.08.2003, 12:26 Uhr
Oliver
S2-Pixelgeneral


Probier mal:


C++:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
   string inputfile;
   string outputfile;
   string data;

   if(argc>2)
   {
   inputfile = argv[1];
   outputfile = argv[2];
   }
  
   if(argv[1]&&argv[2])
   {
   ifstream file1(inputfile.c_str(),ios::in);
   file1>>data;    

   ofstream file2(outputfile.c_str(),ios::out);
   file2<<data;
    
   cout << inputfile << endl << outputfile;
   getchar();
   }
              
   return 0;
}


--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 17.08.2003 um 12:36 Uhr von Oliver Müller editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.08.2003, 12:31 Uhr
~pmw
Gast


Hallo Oliver Müller!

Danke für die Quelltext. Leider finde ich in der Ausgabedatei immer nur den Code bis zum ersten \r\n.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: