Hallo Leute,
hab mal wieder einige Fragen (sind "nur" 2), wo ich wieder mal nicht weiter komme...
Ich versuche eine Datei einzulesen. Das klappt auch. Er fragt nach dem Pfad ab, öffnet die Datei, z.B: Pfad: c:\Temp\Textdatei.txt dort stehen 2 Wörter drin
Wort1
Ende
Die kann ich auch ausgeben. Allerdings versuch ich diese in ein Array zu speichern und anschließend nochmals ausgeben zu können. Da kommen leider nur irgendwelche Zeichen raus.
Hier der Code:
Die Ausgabe machts leider nicht
hat jemand eine ide
2. Frage wäre, wenn ich NUR ein Wort ausgeben will, also per Zufall, wie könnte ich das hin kriegen? Ich versuche schon die ganze Zeit rand() einzubauen, aber funktioniert nicht.
Die Textdatei bekommt noch weitere Wörter, hier sind nur 2 zum testen.
Ich hoffe ihr könnt mir helfen!!
Dank im Vorraus
MfG
Manda
hab mal wieder einige Fragen (sind "nur" 2), wo ich wieder mal nicht weiter komme...
Ich versuche eine Datei einzulesen. Das klappt auch. Er fragt nach dem Pfad ab, öffnet die Datei, z.B: Pfad: c:\Temp\Textdatei.txt dort stehen 2 Wörter drin
Wort1
Ende
Die kann ich auch ausgeben. Allerdings versuch ich diese in ein Array zu speichern und anschließend nochmals ausgeben zu können. Da kommen leider nur irgendwelche Zeichen raus.
Hier der Code:
Code:
#include <stdio.h>
#include <stdlib.h>
void read_char(FILE *stream);
void ausgabe(char *array);
int main(int argc, char **argv)
{
FILE *datei;
char filename[255];
if(argc < 2)
{
printf("Welche Datei wollen sie \231ffnen: ");
scanf("%s", &filename);
datei = fopen(filename, "r");
if(datei != NULL)
{
read_char(datei);
}
else
{
printf("Datei nicht gefunden!");
return EXIT_FAILURE;
}
}
else
{
datei = fopen(argv[1], "r");
if(datei != NULL)
{
read_char(datei);
}
else
{
printf("Konnte %s nicht \231ffnen", argv[1]);
return EXIT_FAILURE;
}
}
printf("\n\n");
return 0;
}
void read_char(FILE *stream)
{
int c = 0;
char array[50];
while( ( c = fgetc(stream)) != EOF)
{
putchar(array[ c] = c);
}
printf("\n");
ausgabe(array);
}
void ausgabe(char *array)
{
int i = 0;
while(array[i] != EOF)
{
putchar(array[i]);
i++;
}
}
Die Ausgabe machts leider nicht

2. Frage wäre, wenn ich NUR ein Wort ausgeben will, also per Zufall, wie könnte ich das hin kriegen? Ich versuche schon die ganze Zeit rand() einzubauen, aber funktioniert nicht.
Die Textdatei bekommt noch weitere Wörter, hier sind nur 2 zum testen.
Ich hoffe ihr könnt mir helfen!!
Dank im Vorraus
MfG
Manda