004
07.11.2007, 13:31 Uhr
wolf360
|
C++: |
/* fgetc2.c */ #include <stdio.h> #include <stdlib.h> void read_char(FILE *stream) { int c; while( (c=fgetc(stream)) !=EOF) putchar(c); } int main(int argc, char **argv) { FILE *datei; char filename[255]; /* Falls die Datei zum Öffnen nicht * als Argument übergeben wurde ... */ if(argc < 2) { printf("Welche Datei wollen sie öffnen : "); scanf("%s",filename); datei = fopen(filename ,"r"); if(datei != NULL) read_char(datei); else { printf("Fehler beim Öffnen von %s\n",filename); return EXIT_FAILURE; } } else { datei=fopen(argv[1],"r"); if(datei != NULL) read_char(datei); else { printf("Konnte %s nicht öffnen!\n",argv[1]); return EXIT_FAILURE; } } return EXIT_SUCCESS; }
|
Das ist ein Programmbeispiel vom Buch, aber irgendwie klappt das nicht bei mir, weiß aber nicht warum...?
Ich habe im selben Verzeichniss wo die Anwendung ist, eine Datei test.txt erstellt. Wenn ich dann eingebe test.txt sagt ehr Fehler beim Öffnen??
Was ich auch nicht verstehe ist das:
int main(int argc, char **argv)
Warum **argv? In einem anderm Thread wurde mir gesagt das das für ein 2 Dimensionales Array steht, aber warum ein 2 Dimensionales Array ?? und warum vereinbart er das in der Klammer und nicht danach? Dieser Post wurde am 07.11.2007 um 14:28 Uhr von wolf360 editiert. |