Umlaute umwandeln



  • moin..
    ich hatte vor, ein kleines Programm zu schreiben, das Umlaute umwandelt, aber ich bin stecken geblieben. Das folgende Programm soll erst einmal einfach nur von einer Eingabedatei alle Zeiche in eine Ausgabedatei schreiben. Statdessen gibt die Shell mir immer ein <Segmentation fault> aus. Sieht jmd. den Fehler?

    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
    	printf("testttttt");
    	FILE *f_input;
    	FILE *f_output;
    	char c;
    	if(f_input = fopen(argv[1],"r")  == NULL)
    	{
    		fprintf(stderr,"Fehler beim \"Offnen der Datei. \"Ubergeben Sie als Parameter eine g\"ultige und Datei! und einen g\"ultigen Dateiname f\"ur die Ausgabe");
    		return  1;
    	}
    
    	if(f_output = fopen(argv[2],"w")  == NULL)
    	{
    		fprintf(stderr,"Fehler beim \"Erstellen der Ausgabe-Datei. Versuchen Sie es nochmal!");
    		return  1;
    	}
    
    	while(c = fgetc (f_input) != EOF)
    	{
    		fprintf(f_output,"%c",c);
    
    	}
    	fclose(f_input);
    	fclose(f_output);
    	return 0;
    }
    


  • Mach mal aus "char c;" "int c;"

    und aus "while(c = fgetc (f_input) != EOF)" "while((c = fgetc (f_input)) != EOF)"

    Genauso "if(f_input = fopen(argv[1],"r") == NULL)" in if((f_input = fopen(argv[1],"r")) == NULL), das gleiche mit f_output



  • vielen Dank...

    hat geklappt.



  • ich kann in meinem Programm alle Buchstaben umwandeln, außer Umlaute? unabhängig davon ob ich das <c> als int oder char deklariere, ob ich bei der Abfrage nach dem Zahlenwert (z.B. 132) oder nach dem char (z.B.'ä') frage....

    ein Mysterium.

    kann der gcc keine Umlaute erkennen?



  • ich kann in meinem Programm alle Buchstaben umwandeln, außer Umlaute? unabhängig davon ob ich das <c> als int oder char deklariere, ob ich bei der Abfrage nach dem Zahlenwert (z.B. 132) oder nach dem char (z.B.'ä') frage....

    Nein.
    Aber EOF ist meistens -1 und passt deshalb meistens nicht in ein char.

    ein Mysterium.

    kann der gcc keine Umlaute erkennen?

    Der weiß gar nicht was das ist.
    Verwirrt?
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-161855.html
    🙂


Log in to reply