Announcement

Collapse
No announcement yet.

Frage zur Logfile Erstellung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage zur Logfile Erstellung

    hallo,

    ich bin gerade dabei mit c++ ein miniminispiel zu entwicklen und ich würde gerne folgendes implementieren, dass man logfiles ins programm einlesen und ausgeben kann(sowas wie ein speichersystem).
    ABER: ich scheitere momentan an was ganz einfachem: Also ich will mit dem code folgendes erreichen:

    - es wird die text.txt geöffnet und der inhalt in eine andere file kopiert, aber irgendwie macht er zwar die file abcd.txt, aber es wird nichts reinkopiert - ich weiß nicht wieso ... hoffe ihr könnt mir helfen (also lt der folie, von der ich den code habe, müsste der text/inhalt in der text.txt datei in die abcd.txt reinkopiert werden, aber wieso tut er das nicht?):

    Code:
      ifstream Quelle;
       ofstream Ziel;
          //unsigned char c = 0;
       		char c = 0;
          char fname1[] = "C:\\TEST.txt", fname2[] = "C:\\abcd.txt";
         
          Quelle.open(fname1,ios::binary | ios::in);
          if (!Quelle)
             cout << "\nDatei " << fname1
                  << " konnte nicht geöffnet werden!" << endl;
          else
          {  Ziel.open(fname2,ios::binary | ios::out);
             if (!Ziel)
                cout << "\nDatei " << fname2
                     << " konnte nicht geöffnet werden!" << endl;
             else
            	 //cout<<"gehst du hier rein?";
            	 
            	 while(Quelle.get(c)){
                   Ziel.put(c);
                  
            	 }
    Was ich noch gerne wissen möchte: wenn ich jetzt anstatt einfach nur char, unsinged char schreibe, dann bringt er compiler mir eine fehlermeldung ganz unten bei quelle.get(c) ... warum ist das so? Also eigentlich habe ich den code von einer folie, darum habe ich gehofft der funktioniert, aber leider ...

    danke für jede antwort.
    mfg

  • #2
    "Geht nicht" ist kein Fehler. Bitte gib eine Fehlerbeschreibung an. Treten Compiler- oder Linkerfehler auf?

    Wenn das Programm compiliert und gelinkt wird und du es ausführst, aber es nicht macht was es soll, liegt offenbar ein logischer oder konzeptioneller Fehler vor.

    Setze breakpoints und debugge das Programm im Einzelschritt durch
    Christian

    Comment


    • #3
      sry, ja es liegt ziemlich sicher ein logischer fehler vor ... der einzige unterschied was ich zu den folien habe, ist, dass ich anstatt unsigend char, einfach char geschrieben habe, weil da bringt der compiler eine fehler meldung: "no matching for call to std::basic_ifstream<char, std::char_traits<char> >::get( unsigend char&)" ...

      Comment


      • #4
        http://teletext.orf.at/computerbox/cpp016.txt

        http://www.cplusplus.com/reference/i...tream/get.html

        Die Methode erwartet nun einen char und keinen unsigend char. Dem musst du dich beugen...
        Christian

        Comment


        • #5
          danke erstmals, aber jetzt ist die fehlermeldung zwar weg (wie erwähnt), aber in die abcd.txt wird einfach nichts hineinkopiert ... an was liegt das? (also in der TEXT.txt hab ich natürlich was reingeschrieben, dass auch was kopiert wird)

          Comment


          • #6
            Setze breakpoints und debugge das Programm im Einzelschritt durch
            Christian

            Comment


            • #7
              Also ich habe dein Code nun ausprobiert -> er funktioniert...so
              Code:
              ifstream Quelle;
              ofstream Ziel;
              char c = 0;
              char *fname1= "h:\\TEST.txt", *fname2 = "h:\\abcd.txt";
              Quelle.open(fname1,ios::binary | ios::in);
              if(!Quelle)
              cout << "\nDatei " << fname1 << " konnte nicht geöffnet werden!" << endl;
              else
              {
              Ziel.open(fname2,ios::binary | ios:out);
              if (!Ziel)
              cout << "\nDatei " << fname2<< " konnte nicht geöffnet werden!" << endl;
              else
              while(Quelle.get(c))
              {
              Ziel.put(c);
              }
              }
              Zuletzt editiert von Christian Marquardt; 05.04.2008, 14:52.
              Christian

              Comment


              • #8
                hmm ich muss ehrlich sagen, ich bin noch ziemlcher anfänger in c++, deshalb weiß ich jetzt nicht genau, wo ich da fehler erkennen kann bzw. wie ich breakpoints setzen soll ... darf ich dich bitten, das prog auf deinem system mal auszuprobieren? (müsstest du eigentlich nur den oberen code kopieren und in eine main stecken, aber ich glaube, dass weißt du eh selber :P)

                Comment


                • #9
                  darf ich dich bitten, das prog auf deinem system mal auszuprobieren?
                  Also ich habe dein Code nun ausprobiert -> er funktioniert...so

                  Das habe ich getan
                  Christian

                  Comment


                  • #10
                    und du hast es 1 zu 1 kopiert öÖ? was hast du für includes genommen? ... ich weiß echt nicht mehr weiter ...


                    EDIT: omg habs endlich rausgefunden ... wenn man nach der while klammer die datei Ziel schließt mit Ziel.close() geht das ganze ...
                    Zuletzt editiert von int0xicated; 05.04.2008, 17:04.

                    Comment

                    Working...
                    X