warum funktioniert das nicht??
-
Hallo zusammen,
ich bin vor kurzem in c eingestiegen indem ich ein Tutorial durcharbeite, folgende 2 Probleme sind dabei aufgetaucht.
erstens:
Warum wird bei dem folgenden Code die Eingabe nicht mit # abgebrochen sonder erst wenn ich # eintippe und dann mit enter bestätige.
#include <stdio.h> int main() { FILE *datei; char dateiname[25]; char zeichen; char abbruch = '#'; printf("Bitte Dateiname eingeben: "); scanf("%s",dateiname); datei = fopen(dateiname,"w+"); if(datei==NULL) { printf("\n\nDie Datei konnte nicht geöffnet werden!"); } else { printf("\n\nText eingeben, beenden mit '#'\n\n"); while((zeichen = getchar())!= abbruch) { putc(zeichen,datei); } printf("\n\nDanke, das sie mich benutzt haben."); fclose(datei); } fflush(stdin); getchar(); }
zweitens:
Beim einbinden von diesem Code werden die ersten beiden Zeilen als fehlerhaft erkannt und führt zum abbruch der Kompilierung.
#ifndef_meine_datei #define_meine_datei #define Ausgabe printf("\nHallo Welt"); #define zeigeText(A) printf(A); #endif
Erst wenn ich es in folgenden Code umwandle, funktioniert es.
#if !_meine_datei //#define_meine_datei #define Ausgabe printf("\nHallo Welt"); #define zeigeText(A) printf(A); #endif
Zum kompilieren benutze ich dev-c++, liegt es vllt daran? Ist der code im Tutorial einfach nur falsch oder ...??
-
#define_meine_datei
Besser:
#define meine_datei
Warum wird bei dem folgenden Code die Eingabe nicht mit # abgebrochen sonder erst wenn ich # eintippe und dann mit enter bestätige.
Das ist so mit den Standard-Eingabe-Funktionen. Die puffern auf Terminals zeilenweise, dagegen kann man nichts tun. Siehe auch hier:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.html