Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Inhalt einer Datei in String speichern

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 <
000
29.04.2006, 20:49 Uhr
~Frage
Gast


Hallo,

Ich wollte wissen, wie es funkioniert den Inhalt einer Datei in einem String zu speichern.

Danke!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.04.2006, 20:54 Uhr
Pler
Einer von Vielen
(Operator)


Ich glaube das geht gar nicht.
Dieser Post wurde am 29.04.2006 um 21:03 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.04.2006, 21:06 Uhr
Karldin Shinowa
Professional Noob


wieso nicht???

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

int main()
{
   string inhalt,buffer;
   fstream Datei("Pfad",ios::in);

   while(getline(Datei,buffer))
   {
      inhalt+=buffer;
      inhalt+='\n';
   }
}


--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.04.2006, 23:22 Uhr
~guest
Gast


Da ich mich bei deinem Code nich wirklich auskenne werde ich jetzt meine Frage schildern.
Ich soll ein Programm machen, welches eine vom Benutzer bestimme Datei öffnet, kopiert, und in eine -wieder vom Benutzer angegebener Pfad- speichert.

Ich habe so angefangen:


C++:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream.h>

void main()
{
          FILE *quelldatei,*zieldatei;
          char open[50], copy[50], inhalt;
          int abfrage_quell, abfrage_copy, abfrage_erneut;

          while(abfrage_quell!='n')
          {
          clrscr();
          printf("Bitte geben Sie Die Quelldatei an, die Sie kopieren m”chten: \n\n");
          gets(open);

          quelldatei=fopen(open,"r");
          if(quelldatei==NULL)
          {
              printf("Datei existiert nicht. Nochmal versuchen? j/n ");
              abfrage_quell=getch();
              if(abfrage_quell=='n')
              {
                  printf("\n\nProgramm wird beendet");
                  getch();
                  exit(1);
              }

          }
          else
          {
              printf("Datei wurde erfolgreich ge”ffnet!");
              break;
          }

          }

          while(abfrage_erneut!='n')
          {
          clrscr();

          cout<<"Quelldatei....."<<open;
          printf("\n\nUnter welchem Namen soll die Kopie gespeichert werden?\n\n");
          gets(copy);

          zieldatei=fopen(copy,"r");
          if(zieldatei==NULL)
          {
              printf("Datei wird neu angelegt.");
              break;
          }
          else
          {
                  printf("Datei existiert bereits. šberschreiben? j/n");
                  abfrage_copy=getch();
                  if(abfrage_copy=='j')
                  {
                      printf("\n\nDatei wird überschrieben.");
                      break;
                  }
                  else
                  {
                        printf("\n\nWollen Sie erneut eine Zieldatei angeben? j/n");
                        abfrage_erneut=getch();
                        if(abfrage_erneut=='n')
                        {
                             printf("\n\nProgramm wird beendet");
                             getch();
                             exit(1);
                        }
                  }
          }
          }
            clrscr();
            cout<<"Quelldatei....."<<open<<"\n\n";
            cout<<"Zieldatei......"<<copy<<"\n\n";
            fclose(quelldatei);
            fclose(zieldatei);
            getch();

    quelldatei=fopen(open,"r");
    zieldatei=fopen(copy,"w");

    inhalt=fgetc(quelldatei);
    while(!feof(quelldatei))
    {
         putchar(inhalt);
         fprintf(zieldatei,"%s\n",inhalt);
         inhalt=fgetc(quelldatei);
    }

       getch();
       fclose(quelldatei);
       fclose(zieldatei);


}



Bitte den obrigen Teil jetzt einfach mal auslasen, und den unteren Teil ansehen, ab
inhalt=fgetc(quelldatei);. Hier muss irgendwo das Problem liegen.
Danke!!!!

mod edit: BENUTZE DIE CPP TAGS SELBER

Dieser Post wurde am 30.04.2006 um 00:02 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.04.2006, 05:12 Uhr
Helmut



Hallo Guest!

Hab' mir dein Programm mal angesehen.


C++:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream.h>

void main()
{
          FILE *quelldatei,*zieldatei;
          char open[50], copy[50], inhalt;
          //int abfrage_quell, abfrage_copy, abfrage_erneut;
               //wenn hier zufällig mal irgendwo 'n' drinnsteht
               //läuft dein Programm nicht.
          
          int abfrage_quell = 0, abfrage_copy = 0, abfrage_erneut = 0;
          
          while(abfrage_quell!='n')
          {
          clrscr();
          printf("Bitte geben Sie Die Quelldatei an, die Sie kopieren m”chten: \n\n");
          gets(open);

          quelldatei=fopen(open,"r");
          if(quelldatei==NULL)
          {
              printf("Datei existiert nicht. Nochmal versuchen? j/n ");
              abfrage_quell=getch();
              if(abfrage_quell=='n')
              {
                  printf("\n\nProgramm wird beendet");
                  getch();
                  exit(1);
              }

          }
          else
          {
              printf("Datei wurde erfolgreich ge”ffnet!");
              break;
          }

          }

          while(abfrage_erneut!='n')
          {
          clrscr();

          cout<<"Quelldatei....."<<open;
          printf("\n\nUnter welchem Namen soll die Kopie gespeichert werden?\n\n");
          gets(copy);

          zieldatei=fopen(copy,"r"); //Du öffnest hier eine Zieldatei zum lesen
                                     //die  nicht existiert, dies wird in deinem Programm
                                     //später, wenn du versuchst diese Datei zu schließen
                                     //zum Fehler - alles kann man eben nicht machen!
                                     //Hier muß natürlich alles so bleiben.
          if(zieldatei==NULL)
          {
              printf("Datei wird neu angelegt.");
              break;
          }
          else
          {
                  printf("Datei existiert bereits. šberschreiben? j/n");
                  abfrage_copy=getch();
                  if(abfrage_copy=='j')
                  {
                      printf("\n\nDatei wird überschrieben.");
                      break;
                  }
                  else
                  {
                        printf("\n\nWollen Sie erneut eine Zieldatei angeben? j/n");
                        abfrage_erneut=getch();
                        if(abfrage_erneut=='n')
                        {
                             printf("\n\nProgramm wird beendet");
                             getch();
                             exit(1);
                        }
                  }
          }
          }
            clrscr();
            //cout<<"Quelldatei....."<<open<<"\n\n"; Fehler!
            //cout<<"Zieldatei......"<<copy<<"\n\n"; Lerne C++!
            cout<<"Quelldatei....."<<open<<endl<<endl;
            cout<<"Zieldatei......"<<copy<<endl<<endl;
            
            fclose(quelldatei);
            //fclose(zieldatei); Fehler! siehe oben!
            getch();

    quelldatei=fopen(open,"r");
    zieldatei=fopen(copy,"w");

    inhalt=fgetc(quelldatei);
    while(!feof(quelldatei))
    {
         putchar(inhalt);
         //fprintf(zieldatei,"%s\n",inhalt); Fehler!
         fprintf(zieldatei,"%c",inhalt);
         inhalt=fgetc(quelldatei);
    }

       getch();
       fclose(quelldatei);
       fclose(zieldatei);


}



Müßte nun laufen.
Fang bloß an C++ zu lernen, dann hast's leichter.

MfG
Helmut
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: