C Programm fehlerlos, aber doch fehlerhaft?!



  • Hallo,

    bin relativ neu in C. Ich habe ein Programm, dass aus einer dat Datei Zahlenwerte einlesen und einmal aufaddieren und einmal ausgeben soll, wie viele Zahlenwerte sich in der Datei befinden. Wenn ich den Code kompilieren will, wird auch alles einwandfrei kompiliert (gcc x.c), wenn ich dann aber die a.out Datei ausführe passiert einfach nichts... Wie gesagt: beim kompilieren kommt keine Fehlermeldung, beim ausführen der a.out Datei kommt auch keine Fehlermeldung... es passiert einfach nichts, bis ich dann den Vorgang mit ctrl+c abbreche. Wäre schön, wenn mir jemand sagen könnte, woran das liegt.
    Hier der Code:

    #include <stdio.h>
    #include <stdlib.h>
    #include <stddef.h>

    int main ()
    {
    int m;
    int n;
    FILE *in;

    in = fopen ("/home/xxx/X/xX/xXx/x.dat", "r");
    m = 0;

    while (fscanf(in, "%i", &n)!=EOF) m++;
    {
    int i;
    int k;
    int a[m];

    rewind (in);
    for (i=0; i<m; i++)
    fscanf (in, "%i", &a[i]);

    k = 0;
    for (i=0; i<m; i++)
    k = k + a[i];
    printf ("m = %i, k = %i\n", m, k);
    }
    }

    Schönen Dank für eventuelle Bemühungen. 🙂

    EDIT: Sorry, aber gleich nach Posten meiner Frage hier, ist mir eine mögliche Lösung eingefallen. Ich hatte nicht beachtet, dass in der Datei, dann natürlich auch nur Werte vom Typ int stehen dürfen... 😡



  • Auch wenn der Quellcode nicht der schönste ist, bei mir funktioniert er.
    Hast du denn bei "/home/xxx/X/xX/xXx/x.dat" auch eine Datei angelegt?



  • Prüfen, ob in != NULL



  • [cpp]-Tags verwenden. Im eigenen Interesse.


Anmelden zum Antworten