Thread View: de.comp.lang.c++
6 messages
6 total messages
Started by Gernot Schwed
Tue, 26 Dec 1995 16:26
Dumme Frage...
Author: Gernot Schwed
Date: Tue, 26 Dec 1995 16:26
Date: Tue, 26 Dec 1995 16:26
53 lines
1272 bytes
1272 bytes
Hi!
Ich mache gerade meine ersten Schritte in c und bin da auf ein Problem
gestossen.
Bei folgendem Proggi kann nach der Eingabe der Datei zB test.txt
die Datei nicht geoeffnet werden.
Any Ideas?!?
DANKE!
Gernot
-------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
FILE *stream;
char zeile[81],dateiname[67];
int zeilen=0;
printf("\n\t\tTextzeilen erfassen\n");
printf("\nText in welcher Datei speichern?\n>");
gets(dateiname);
if((stream=fopen(dateiname,"w"))==NULL);
{
printf("Nicht zu oeffnen!");
exit(1);
}
printf("\NLeerzeile beendet Eingabe.");
gets(zeile);
while(strlen(zeile) > 0)
{
fprintf(stream,"%s\n",zeile);
zeilen++;
gets(zeile);
}
fclose(stream);
printf("\n%i Zeilen geschrieben.\n",zeilen);
}
http://stud.uni-sb.de/~gescw/
Re: Dumme Frage...
Author: Uwe Behrens
Date: Tue, 26 Dec 1995 19:33
Date: Tue, 26 Dec 1995 19:33
34 lines
1443 bytes
1443 bytes
In article <4bp7pb$1a9@bellona.wg.saar.de>, gescw@stud.uni-sb.de (Gernot Schwed) writes:
|> Hi!
|>
|> Ich mache gerade meine ersten Schritte in c und bin da auf ein Problem
|> gestossen.
|> Bei folgendem Proggi kann nach der Eingabe der Datei zB test.txt
|> die Datei nicht geoeffnet werden.
|>
|> Any Ideas?!?
Yep! Siehe unten.
|> DANKE!
|> Gernot
[ loesch, loesch ]
|>
|> if((stream=fopen(dateiname,"w"))==NULL);
^
|
Klassischer Fehler, das Semikolon gehoert da nicht hin!
Wenn Du's genauer wissen willst, dan melde Dich per PM. Ansonsten viel
Spass bei der Lektuere von K&R ...
--
_______________________________________________________________________________
Uwe Behrens <behrens@acm.org> (aka <uwe@mevis.uni-bremen.de>)
``#define QUESTION ((2*be) || !(2*be))''
Re: Dumme Frage...
Author: Gernot Schwed
Date: Wed, 27 Dec 1995 20:18
Date: Wed, 27 Dec 1995 20:18
28 lines
967 bytes
967 bytes
uwe@mathematik.uni-Bremen.de (Uwe Behrens) wrote: Hi! >[ loesch, loesch ] > >|> >|> if((stream=fopen(dateiname,"w"))==NULL); > ^ > | >Klassischer Fehler, das Semikolon gehoert da nicht hin! that's it, ... ist etwas gewoehnungsbeduerftig... >Wenn Du's genauer wissen willst, dan melde Dich per PM. Ansonsten viel >Spass bei der Lektuere von K&R ... ?!? Erlenkoetter/Reher ;-) Danke, Gernot http://stud.uni-sb.de/~gescw/
Re: Dumme Frage...
Author: Stephan A. Maciej
Date: Fri, 29 Dec 1995 12:31
Date: Fri, 29 Dec 1995 12:31
60 lines
2041 bytes
2041 bytes
On 29 Dec 95 (16:26), gescw@stud.uni-sb.de wrote:
> Hi!
>
> Ich mache gerade meine ersten Schritte in c und bin da auf ein Problem
> gestossen.
> Bei folgendem Proggi kann nach der Eingabe der Datei zB test.txt
> die Datei nicht geoeffnet werden.
>
> Any Ideas?!?
Ja, siehe Listing.
> DANKE!
> Gernot
>
> ----------------------------------------------------------------------------
> --------------------------------------
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
>
> main()
> {
> FILE *stream;
> char zeile[81],dateiname[67];
> int zeilen=0;
>
> printf("\n\t\tTextzeilen erfassen\n");
> printf("\nText in welcher Datei speichern?\n>");
> gets(dateiname);
>
>
> if((stream=fopen(dateiname,"w"))==NULL);
^ Dieser Strickpunkt muss weg !
Nun ueberlege mal logisch: die einzige Operation die Ausgefuehrt wird,
wenn ((stream=fopen(...))==NULL) ist ";" - nix also. Der darauffolgende
{...}-Block ist nicht mehr konditional, da er durch das ; von der if-
Bedingung getrennt ist; er wird also immer ausgeführt.
Mit einem Debugger haettest Du schnell feststellen koennen, das etwas an
der if-clause nicht stimmt, da das Programm abgebrochen wird obwohl
stream != NULL !
> {
> printf("Nicht zu oeffnen!");
> exit(1);
> }
>
> [...]
>
> http://stud.uni-sb.de/~gescw/
Stephan
-------------------------------------------------------------------------
Stephan A. Maciej stephan@maciej.muc.de http://www.muc.de/~stephanm
-------------------------------------------------------------------------
Re: Dumme Frage...noch eine Antwort
Author: krstnmr
Date: Tue, 02 Jan 1996 18:27
Date: Tue, 02 Jan 1996 18:27
28 lines
1279 bytes
1279 bytes
>In article <4bp7pb$1a9@bellona.wg.saar.de>, gescw@stud.uni-sb.de (Gernot Schwed) writes: >|> Hi! >|> >|> Ich mache gerade meine ersten Schritte in c und bin da auf ein Problem >|> gestossen. >|> Bei folgendem Proggi kann nach der Eingabe der Datei zB test.txt >|> die Datei nicht geoeffnet werden. >|> >|> Any Ideas?!? Jetzt haben ja alle schon den oberflaechlichen Fehler kommentiert, aber ich denke der ein grosses problem ist, zu viel auf einmal machen zu wollen und dann den ueberblick zu verlieren. statt if((stream=fopen(dateiname,"w"))==NULL) empfehle ich deshalb, fuer Anfaenger und fuer alle, die glauben, das sie beim programmieren ab und zu mal einen Fehler machen stream=fopen(dateiname,"w"); if(stream==NULL) .. das laesst sich in einen Debugger auch wesentlich einfacher nachverfolgen. Karsten Meier
Re: Dumme Frage...noch eine Antwort
Author: Stephan A. Maciej
Date: Fri, 05 Jan 1996 14:30
Date: Fri, 05 Jan 1996 14:30
21 lines
1492 bytes
1492 bytes
On 05 Jan 96 (18:27), krstnmr@ibm.net wrote:
> das laesst sich in einen Debugger auch wesentlich einfacher nachverfolgen.
Nein. Beide Loesungen sind gleich schwer zu Debuggen. Wenn der Konditionale
Block hinter der if-clause nicht ausgefuehrt wird, obwohl der Variable,
der das zu testende Funktionsergebniss zugewiesen wird, die Bedingung
nicht erfuellt, die durch die if-Anweisung vorgegeben wird, sieht man
sehr schnell, das was an der if-Anweisung falsch ist. Die laengere
Alternativloseung bringt das selbe Ergebniss (zum Glueck :), sonst wuerde
ich langsam an C zweifeln), sie ist aber - und in diesem Punkt gebe ich
Dir recht - uebersichtlicher.
>
> Karsten Meier
Stephan
-------------------------------------------------------------------------
Stephan A. Maciej stephan@maciej.muc.de http://www.muc.de/~stephanm
<<< Bug is a registered trademark of Microsoft Corp. >>>
-------------------------------------------------------------------------
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads