000
08.11.2008, 19:01 Uhr
~aaaaaaaaaaa
Gast
|
Hallo,
bin gerade dabei ein Programm zu schreiben aber so richtig komme ich nicht weiter und es sind noch eingie Unklarheiten.
C++: |
#include <stdio.h> #include <stdlib.h> #include <getopt.h> #include <string.h>
int main(int argc, char *argv[]) { int opt; FILE *datei; char line [100]; char *info; char gll []={"$GPGLL"}; //char rmc []={"$GPRMC"};
while ((opt=getopt(argc, argv, "c:stfh")) != -1) { switch (opt) { case 'c': { if (optarg[0] == 1) printf("g"); else if (optarg[0] == 2) printf("f"); else if (optarg[0] == 3) printf("e"); else printf("False Function\n"); } break;
case ':': fprintf(stderr, "missing value.\n"); break;
case '?': fprintf(stderr, "Option is unkown\n"); break;
}
datei = fopen("gpslog.txt","r");
if (datei != NULL) {
while ((fgets(line,100,datei)) != NULL) { if (strncmp(line,gll,6) == 0) { info=strtok(line, ","); fputs (info+3, datei); } } } else printf ("Can't open or find datei");
fclose(datei);
} return 0; }
|
1) Bei getopt ist "c:stf:h" eine Zeichenkette. Wenn ich jetzt programm.exe -c 1 -s -t -f datei.txt eingebe, wie kann er das in "int opt" speichern. Wäre das nicht ein String mit char[]
2) In allen Einführungs-Beispielen habe ich gesehen dass es so steht
printf ("Die eingabe war %c", optarg); => optarg = 1
Bei Kollegen habe ich gesehen dass es mit optarg[0] steht. Habe mich bisschen gespielt und es funktioniert nur auf diese Weise.
if(optarg[0] == 1) Funktion 1();
if (optarg[0] == 2) Funktion 2();
3) Was bedeutet optopt und optind
4)Als ich versucht habe das Programm zu testen und das File zu öffnen, stand "Cant find or open datei". Wieso kommt es nicht in die Text-Datei.
Weiter konnte ich es noch nicht testen. Sind bisschen viele Fragen aber ich hoffe ihr könnt mir helfen.
Ich bin bereit etwas zu lesen aber bitte nicht in Englisch
MfG
PS. Wieso steht bei mir immer beim ersten mal Falscher Sicherheitscode und löscht den Inhalt. |