mehrdim. char Arrays
Verfasst: Mo Jul 18, 2011 3:36 pm
Hallo!
btw.: Hat die Seite irgendwo ein timeout?
Ich habe heute versucht etwas hochzuladen, aber das ist nicht im Forum angekommen?
Hier meine aktuelle Herausforderung:
Ich möchte Dateinamen aus einer Liste lesen und die Dateien dann anschließend öffen.
Mein Codeschnipsel sieht so aus:
Die Datei wert.dat sieht so aus:
Complilieren tuts auch, aber beim starten gibts einen coredump.
Mein debugger liefert:
Program terminated with signal 11, Segmentation fault.
#0 0x000000379d771340 in strlen () from /lib64/tls/libc.so.6
Also was in der Funktion strlen, macht mich leider nicht wesentlich schlauer.
Ciao
Jürgen
P.S. das mit dem Fortran Tutorial überleg ich mir...
btw.: Hat die Seite irgendwo ein timeout?
Ich habe heute versucht etwas hochzuladen, aber das ist nicht im Forum angekommen?
Hier meine aktuelle Herausforderung:
Ich möchte Dateinamen aus einer Liste lesen und die Dateien dann anschließend öffen.
Mein Codeschnipsel sieht so aus:
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *substr(char [], int start, int end);
int main(void)
{
FILE *Datei;
char Zeile[80];
char *Dateiname;
int Anzahl=0;
int i;
char Dateien[10][80];
Datei = fopen("wert.dat", "r+b");
while (!feof(Datei))
{
fgets(Zeile,120,Datei);
if (strstr(Zeile,"$") != NULL && strncmp(Zeile,"$",1) == 0 )
{
continue;
}
if (strstr(Zeile,"Name") != NULL )
{
/* printf("%s",Zeile);*/
Dateiname=strtok(Zeile,"'");
Dateiname=strtok(NULL,"'");
/* printf("Dateiname: %s\n",Dateiname);*/
Anzahl++;
strcpy(&Dateien[Anzahl][80],Dateiname);
}
}
/*
*/
printf("gelesene Dateinamen: %d\n",Anzahl);
for (i=1;i<=Anzahl;i++)
{
printf("%d %s\n",i,Dateien[i][80]);
/*
Datei = fopen(Dateien[i][80], "r+b");
while (!feof(Datei))
{
fgets(Zeile,120,Datei);
printf("%s",Zeile);
}
*/
}
return 0;
}
Code: Alles auswählen
Name 'abc.txt'
Name 'def.txt'
Name 'ghi.txt'
$Name 'ABC.txt'
NAME 'DEF.txt'
Mein debugger liefert:
Program terminated with signal 11, Segmentation fault.
#0 0x000000379d771340 in strlen () from /lib64/tls/libc.so.6
Also was in der Funktion strlen, macht mich leider nicht wesentlich schlauer.
Ciao
Jürgen
P.S. das mit dem Fortran Tutorial überleg ich mir...