hilfe bei Dev-c++



  • #include <iostream>
    #include <string>
    #include <stdlib.h>
    #include <fstream.h>

    using namespace std;

    void writing()
    {
    ofstream out("test.txt");
    out<<"Das ist ein Test"<<endl;
    out<<"Das ist der zweite Test und dritte Test"<<flush;
    };
    string readline(ifstream &in)
    {
    string result;
    char reading[]="";
    int g;
    for(int i=0;i!=-1;++i)
    {
    reading[i]=in.get();
    g=i;
    if(reading[i]==10 || in.eof()) break;
    reading[i+1]='\0';
    };
    reading[g]='\0';
    result=reading;
    return result;
    };

    void main()
    {
    string w2[2];
    int var=0;
    string key;
    string value;
    writing();
    ifstream in("test.txt");
    while(!in.eof())
    {
    w2[var]=readline(in);
    ++var;
    };
    key=w2[0];
    value=w2[1];
    cout<<key<<endl;
    cout<<value<<endl;
    system("pause");
    };

    Wenn ich dieses Programm mit Dev-C++ kompilliere und starte dann stürzt es ab und Windows gibt eine Fehlermeldung:"Diese Anwendung wird aufgrund eines ungültigen Vorgangs geschlossen."

    Wenn ich es aber mit Borland Compiler 5.5 kompilliere, läuft es Einwandfrei.
    Kann mir jemand sagen was da los ist, bzw. was ich dagegen tuen kann?

    Danke im voraus.



  • Welchen dev nutzt du?
    Wo stürzt es ab?



  • Ich benutze Dev-C++ 4 und bei welcher Zeile genau es abstürzt, weiß ich nicht.
    ich galube es ist so beim zweiten Aufruf von readline.



  • zieh dir mal den DEV 5 (4.9.irgendwas). der ist eh besser

    ansonsten kann es sein, dass der borland Compiler Speicherbereiche anders behandelt, als der MinGW und Du dadurch.
    so nebenbei, allokiert ifstream::get() gleich speicher?
    Kann sein, dass dort der Fehler liegt, dass Borland in der Hinsicht etwas mehr Schlamperei erlaubt.

    cYa
    DjR



  • ist es gut etwas auser den standardbibliotheken zu includieren damit meine ich *.h
    wegen using namespace std



  • Wieviel Speicher hast du für das char-Array "reading" reserviert? Ich sehe keinen.


Anmelden zum Antworten