Zeichen in char Array einlesen
-
Hi,
ich versuche aus einer Textdatei mit folgendem Aufbau:
Aa,Bb,Cc;
Dd,Ee,Ff;die einzelnen Buchstabenkombis in jeweils ein Element des char Array einzulesen. Dazu habe ich es mit diesem Ansatz probiert, was jedoch immer das erste Element im char Array beim neuen einlesen nach dem Komma überschreibt. Problem ist halt, dass vor dem Char Array ein Pointer auf den Inhalt stehen muss, da sonst der Rest meines Progs nicht funktioniert.
Vielen Dank.
char *suche2[100]; char d,char g; if((fp=fopen("test.txt","rt"))!=0){ while((c=fgetc(fp))!=-1){ if(c==','){ i++; }else{ if(d<=0){ d=c; }else{ g=c; strcat(d,g); suche2[i]=d; } } } fclose(fp); }
-
Hi,
strcat möchte gern zwei char*, du übergibst char.
Siehe Deklaration von strcat http://www.cplusplus.com/reference/clibrary/cstring/strcat/
Ich würde hier aber nichts mit strcat machen. Haben die Buchstabenkombinationen immer 2 Zeichen? Ist die Anzahl vorher bekannt? Das würde das Programm etwas vereinfachen.
Lass dir doch das, was du einlesen willst erstmal anzeigen, dann kannst du das Programm weiter ausbauen:void view_char_combinations() { int i = 0, c = 0; char combi[3] = {0}; // Annahme: die Kombinationen haben maximal 2 Zeichen. char* fname = "test.txt"; FILE* fp = fopen ( fname, "rb" ); if ( fp == NULL ) return 1; while ( ( c = fgetc (fp) ) != EOF ) { if ( isspace(c) ) continue; // Whitespaces ignorieren. if ( c == ',' || c == ';' || i == 2 ) { // Bei i == 2 ist das Array voll. puts ( combi ); i = 0; continue; } combi[i++] = c; } }
Gruß,
B.B.