Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
kleiner Fehler

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bap
Gast





BeitragVerfasst am: 22. Jan 2002 10:37   Titel: kleiner Fehler

findet hier jemand bei long einen Fehler?

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

int main(int argc, char *argv[])

{
FILE *quelldatei;
int c;
char datei[60];

switch(argc)
{
case 2:
printf("1 Argument angegeben
");

if((quelldatei=fopen(argv,"r")) == NULL){
printf("Konnte %s nicht oeffnen
",quelldatei);
} // if

else {
printf("Datei %s wurde geoeffnet
",quelldatei);
getchar();
} // else


fseek(quelldatei, 0L, SEEK_END);
long filepos = ftell(quelldatei);
while (filepos >= 0) {
fseek(quelldatei, filepos, SEEK_SET);
putc(getc(quelldatei), stdout);
filepos -= 1;
} // while

getchar();
break;

case 3:
printf("2 Argumente angegeben
");
printf("Das sind die 2 Argumente:%s %s
",argv,argv);
getchar();
break;

default: printf("Fehler!!! Kein Argument angegeben
");
getchar();
break;
}
}
 

Sulu
Gast





BeitragVerfasst am: 22. Jan 2002 10:49   Titel: Re: kleiner Fehler

Hi bap.

long filepos = ftell(quelldatei);

So macht man das aber nicht.

Vor den ausführbaren Anweisungen zuerst definieren.
long filepos;


Dann im ausführbaren Teil
filepos = ftell(quelldatei);

Gruss
Sulu
 

Sulu
Gast





BeitragVerfasst am: 22. Jan 2002 10:56   Titel: Re: kleiner Fehler

Sach mal.

Funktioniert das wirklich:

if((quelldatei=fopen(argv,"r")) == NULL){
printf("Konnte %s nicht oeffnen ",quelldatei);
} // if

Müsste meines Erachtens
if((quelldatei=fopen(argv,"r")) == NULL){
printf("Konnte %s nicht oeffnen",argv);
} // if
lauten.

1.) argv ist eine String-Array un die Argumente müssen mit einem Index angesprochen werden.
argv[0] ... Programmname
argv ... Erstes Argument
....
2.) quelldatei ist ein FIlE-Pointer. Den gibt mans normalerweise nicht aus allenfalls als
printf("quelldatei %p
",quelldatei);
 

bap
Gast





BeitragVerfasst am: 22. Jan 2002 10:57   Titel: Re: kleiner Fehler

ne geht auch nicht

hat das vieleicht was mit dem Wert von argv und argc zu tun?
 

Jochen
Gast





BeitragVerfasst am: 22. Jan 2002 11:39   Titel: Re: kleiner Fehler

Kleiner Tipp am Rande: Das Board verschluckt eckige Klammern manchmal, da man mittels dieser und HTML-ähnlicher Codes seine Postings mit Fett-Schrift ([b]Fett[/b]) oder kursiver ([i]kursiver[/i]) Schrift schmücken kann. Auch
prä-formatierter Text([pre]prä-formatierter Text[/pre])
ist möglich und so Sachen, genauer nachzulesen unter http://www.pl-forum.de/cgi-bin/UltraBoard/UltraBoard.pl?Action=Help&Idle=10&Sort=0&Order=Descend&Page=0&Session=

Daher bitte beachten: Eckige Klammern in programm-Sourcen mittels "\" escapen, einzelne Backslashes (\) durch "\\" ersetzen!

(So, und jetzt aber erst mal die Vorschau nutzen. )

Jochen
 

Sulu
Gast





BeitragVerfasst am: 22. Jan 2002 13:06   Titel: Re: kleiner Fehler

Hi bap !

Also.

Folgender Programmaufruf:

hansi otto eva 1 3

bedeutet ein argc = 5.

Aber die Argumente sind so aufgebaut:
argv[0] ist "hansi"
argv[1] ist "otto" 1.) Argument
argv[2] ist "eva" 2.) Argument
argv[3] ist "1" 3.) Argument
argv[4] ist "3" 4.) Argument

! Das letzte Argument hat also die Nummer 4.

/* Alle Arguemtente ausgeben. */
for(i=0;i<argc;i++) {
printf("%s\n",argv[i]);
}

....................

Wir interesieren uns z.B. für das 2. Agument, das soll also ein Filename sein

/* Definition Filename */
char filename[256];

/* Jetzt wollen wir den Filename aus dem Commandlineargument entnehmen. */
strcpy(filename,argv[2]);


/* File öffnen */
if( fopen("filename","r")) == NULL) {
printf("So'n Pech aber auch! File %s konte nicht geöffnet werden\n",filename);
exit(1);
}


Bau mal dein Program sinngemäss um, dann sind wir schon mal weiter.

Gruss
SULU

PS: Die Backslash's bei den eckigen Klammern wieder wegnehmen wenn DU den Code aus dem Posting entnehmen solltest.
 

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 24. Jan 2002 14:10   Titel: Re: kleiner Fehler

@Sulu
Dein File öffnen entspricht eigentlich ziemlich genau dem File öffnen von bap.

@bap
Ich fänbde es nicht schlecht, wenn du etwas genauer wärst. Die Aussage, findet hier jemand bei long einen Fehler,ohne anzugeben warum da z. B. ein Fehler sein soll, ist IMHO unter aller ...
Dazu gehört: Meckert der Compiler? Wenn ja welche Fehlermeldung gibt er aus. Gibt es Probleme bei der Ausführung deines Programms, wenn ja wie sieht die Fehlermeldung aus, und welche Parameter wurden übergeben.

Wenn du schon argv verwendest, wäre es auch nicht schlecht mit anzugeben, welches Argument du denn auswerten willst.
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)
 
Benutzer-Profile anzeigen Private Nachricht senden

bap
Gast





BeitragVerfasst am: 24. Jan 2002 15:46   Titel: Re: kleiner Fehler

habs schon geschafft
 

gewitter



Anmeldungsdatum: 09.04.2001
Beiträge: 1354

BeitragVerfasst am: 24. Jan 2002 17:05   Titel: Re: kleiner Fehler

@bap:
von dieser aussage lernen wir nichts. danke.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy