Komisher Fehler... o_O?



  • Hi Leute.
    Ich brauche eine datei einzulesen, G++ compiliert, leider functioniert dieser code nicht wirklich(bitte kommentar im code lesen):

    #include <cstdlib>
    #include <cstdio>
    #include <iostream>
    #include <fstream>
    #include <time.h>
    #include <sys/stat.h>
    
    using namespace std;
    
    unsigned char tab[256][256];
    unsigned char *input, *output; // output wird forerst nicht benutzt
    int insize;
    
    int filesize(FILE * file)
    {
    	fseek(file, 0, SEEK_END);
    	fpos_t fp;
    	fgetpos(file, &fp);
    	fseek(file, 0, SEEK_SET);
    	return (int)fp;
    }
    
    int main (int argc, char* argv[]) // ./enc table.dat input.txt output.txt
    {
      // tabelle laden
       ifstream read_tab(argv[1],ios::binary);
       read_tab.read((char*)tab[0],sizeof(tab));
       read_tab.close();
    
      // Input-datei laden
       FILE* finf;
       finf = fopen("in.txt", "rb"); // hier ist der fehler, glaube ich...
       /* 
        *   wenn ich argv[2] anstatt "in.txt" schreibe, lädt das programm garnichts(weil 0 als länge zurückgegeben wird). 
        *   Nun, warum wird 0 zurückgegeben ?
        */
       int fsize = filesize(finf);
       fclose(finf);
       ifstream infile("in.txt", ios::binary);
       input  = new unsigned char[fsize+1];
       //output = new unsigned char[fsize+1];
       infile.read((char*)input, fsize);
       infile.close();
    
       system("PAUSE");
       return 0;
    }
    

    Wie kriege ich also das hier zum laufen, wenn argv[2] anstatt eines constanten strings benutzt werden soll ?



  • C-File-Streams und C++-File-Streams alter? o0



  • Also, da ich nur ganz wenig ahnung habe benutze ich lieber ifstream, und FILE* um die funktion mit einem gültigem parameter zu versorgen....



  • Du liest in beiden Fällen aus einer Datei.

    Warum einmal FILE* und einmal std::ifstream? o.O



  • memyselfandi schrieb:

    Du liest in beiden Fällen aus einer Datei.

    Warum einmal FILE* und einmal std::ifstream? o.O

    guck mal auf meinen post direckt über deien.... 🙂



  • lk schrieb:

    Also, da ich nur ganz wenig ahnung habe benutze ich lieber ifstream, und FILE* um die funktion mit einem gültigem parameter zu versorgen....

    Lern doch lieber was dazu. Ist doch nur ne Kleinigkeit,



  • Danke, scheint ich habe vergessen in cplusplus.com zu gucken 🙄



  • sehr kohmis.


Anmelden zum Antworten