C Programm schließt sich automatisch

Lark

Mitglied
Hallo,
Ich habe versucht ein entsprechendes Thema zufinden, habe aber leider nichts gefunden.
Wenn denoch eine Thema mit dem gleichen Problem vorhanden seien sollte würde ich euch bitten mich darauf zuverweisen.

Also zu meinem Problem:

Ich habe vor ein paar Tagen angefangen C zulernen.
Nun bin ich bei dem auslesen und schreiben von Text Datein angekommen nur habe ich das Problem wenn ich mit getchar in einer while schleife überprüfen will ob das zeichen der variable abbruch übereinstimmt bricht er schon vorher das Programm ab.

Ich hoffe ich hab es deutlich genug erklärt wenn nicht bitte nachfragen.
Hier Ist der code:
Code:
#include <stdio.h> 
void main ( void )  
{ 

    FILE *datei; 
    char dateiname[25]; 
    char zeichen; 
    char abbruch = '#'; 
    printf ("\nBitte Dateinamen angeben : "); 
    scanf ("%s",dateiname); 

    datei = fopen ( dateiname , "w+" ); 

    if (datei == NULL )  
    { 

    printf ("\nDie Datei konnte nicht geöffnet werden!\n");
    }else{ 
        printf ("\nText eingeben, beenden mit # \n\n");
        while (( zeichen = getchar()) != abbruch ){
                putc (datei,zeichen);
        }
        printf ("\n\nDanke, das sie mich benutzten\n\n"); 
        fclose (datei);
    }

    system("PAUSE");
}

Ich hoffe ihr könnt mir helfen.

mfg
Lark
 
Zuletzt bearbeitet:
Du hast innerhalb der while-Schleife die beiden Parameter von putc() verwechselt. So herum ist richtig, dann gibt es auch keine Fehler beim Kompilieren:
Code:
  putc ( zeichen, datei );   // wegen: int putc( int c, FILE *stream );

Übrigens: Es freut mich sehr, dass du deine Frage so klar formuliert hast und sogar bei deinem ersten Post nicht die Code-Tags vergessen hast!
 
Ah vielen dank jetzt funktioniert es.

Und danke für das Kompliment. Es ist aber auch nicht das erste mal das ich in einem Forum ein Posting schreibe und ich denke wenn ich eine vernünftige Antwort haben will, sollte ich auch eine vernünftige aussagekräftige Frage stellen, besonders in Sachen programmierung.

mfg
 
Ich denke, das ist relativ egal. Laut MSDN machen beide dasselbe, fputc() ist aber als Funktion implementiert und putc() als Makro.
 
Zurück