H
Da mich das etwas verwirrt mit 2D Arrays werde, ich erstaml das Programm so fertig machen, Also für festgelegt Laengen.
EDIT:
Habe nun wieder ein Problem:
Ich wollte verschiedene Elemente aus einem Array ausgeben.
Jedoch verhauts bei mir die Ausgabe(Zeile 100 bis 105) komplett und weiß nicht warum.
Bei den Testausgaben Zeilen: 85,88,91,94 haben die Felder den Richtigen Inhalt
Hat jmd eine Idee?
EDIT:
Ich habs jetz verändert, ich habe nun eine Verschachtelte Schleife gemacht, da er bei nur eine for Schleife, die Wörter immer in das gleiche Array geschrieben hat.
Nun schauen aber beide Testausgaben sehr selstsam aus.
bei der Testausgabe 102 bis 105 gibt er mich auch immer das gleiche Wort zurück.
Hier noch ein Bild von der Ausgabe:
http://up.picr.de/13116853bt.png
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include "fillArray.h"
//Zeilen in der Datei
#define ROWS 86
//Maximale Anzahl Buchstabe pro Wort:
#define WORTLAENGE 55
//Startet den Test über Unregelmäßigen Verben.
void startUnRegVeTest(void){
//Hier steh die Zeile die aus der Datei gelessen wurde.
char row[ROWS];
//IN diesen 2D-Arrays stehen die aus Datei gelessenen Wörter getrennt:
char arrDe[ROWS][WORTLAENGE];//Deutsche übersetzung
char arrInf[ROWS][WORTLAENGE];// Infintiv Eng
char arrSp[ROWS][WORTLAENGE];// Simple past Eng
char arrPp[ROWS][WORTLAENGE];// Past Particle Eng;
//Für strtik:
char *ptr;
//Hier steht die gewählte ANzahl der ABfragungen
int anz;
int k=0;
//i ist die Zählvariable
int i=0;
if (datei == NULL){
printf("Fehler beim oeffnen der Datei.");
}else{
//Wenn es geklappt hat die Datei zu oeffnen
while(!feof(datei)){//Solange Datei nicht am Ende ist:
fgets(row, WORTLAENGE, datei);
//printf("%i) %s", i, row); //Testausgabe
//i++;
//Zum ermitteln des ersten Tokens
ptr = strtok(row, ";");
for(k=0;k<anz;k++){
for(i=0; ptr != NULL; i++) {
//Testausgabe
/*printf("% d. Wort: %s\n",i++,ptr);*/
if(i==0){
strcpy (arrInf[k],ptr);
printf("%s\t", arrInf[k]);/*Testausgabe*/
}else if(i == 1){
strcpy (arrSp[i],ptr);
printf("%s\t", arrSp[k]);/*Testausgabe*/
}else if(i == 2){
strcpy (arrPp[i],ptr);
printf("%s\t", arrPp[k]);/*Testausgabe*/
}else if(i == 3){
strcpy (arrDe[i],ptr);
printf("%s\n", arrDe[k]);/*Testausgabe*/
}
//Zum ermitteln weiterer Tokens:
ptr = strtok(NULL, ";\t ");
} //Ende for-Schleife "for(i=0; ptr != NULL; i++)"
}
}//Ende while printf("%s\n", arrDe[0]);/*Testausgabe*/
printf("%s\n", arrDe[1]);/*Testausgabe*/
printf("%s\n", arrDe[2]);/*Testausgabe*/
printf("%s\n", arrDe[3]);/*Testausgabe*/
printf("%s\n", arrDe[4]);/*Testausgabe*/
}//Ende Else
//Datei schließen:
fclose(datei);
system("pause");
}