Ein/- Ausgabe Problem

hakkejimmy25

Grünschnabel
Hallo alle zusammen...
Habe folgendes Problem... Ich habe eine Text.txt in der mehrere Zeilen stehen...
Diese möchte ich einlesen und auf der Konsole ausgeben...
Bei mir gibt er nur die erste Zeile aus...

Code:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 int i,n;
 char puffer[100];
 FILE *datei;
 datei = fopen("text.txt", "r");                        /* Textdatei wird geöffnet, die nur gelesen werden kann */
                  
 fgets(puffer,n,datei);

 if (datei != NULL)
     printf("Datei wird erfolgreich geöffnet\n");       /* Wenn eine Datei gefunden wurde */
 else
    {
     printf("Es konnte keine Datei geöffnet werden\n"); /* Wenn keine Datei gefunden wurde */     
    }
 
     
 printf("\n");
 fputs(puffer,stdout);                                          /* Ausgabe*/
 printf("\n");             
  
  system("PAUSE");	
  return 0;
}
 
Hi.

Mich wundert das überhaupt etwas ausgegeben wird. Du hast die Variable n ja gar nicht initialisiert....

Du mußt schon eine Schleife programmieren um alle Zeilen auszugeben:
C:
while (fgets(puffer, sizeof(puffer)/sizeof(*puffer), datei) != NULL) {
  fputs(puffer, stdout);
}
Gruß

PS: Du solltest fgets natürlich nur mit einem gültigen FILE Zeiger aufrufen.
 
noch eine Frage....
Möchte das jetzt alles über die Kommandozeile steuern, also das wenn ich z.B.
" expand.exe text.txt " eingebe er aus der text.txt alles auf die Konsole kopiert...

Code:
 if (argc>2)
    {
     printf("\nZu viele Parameter! Programm wird beendet.\n");
	 exit(0);
    }
 if (argc == 2 && argv[1]== 'text.txt' )
    fputs(puffer,stdout);       
 else
 {
printf("Fehler");

}   
                
while (fgets(puffer,sizeof(puffer),datei) != NULL)      /* Auslesen aus der Datei und in die Konsole kopieren */
       fputs(puffer,stdout);


Habe mir mal dazu in etwa dies einfalle lassen jedoch klappt das nicht so ganz...
 
C++:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    if (argc != 2)
    { 
        printf("ERROR: Invalid parameter count!"); 
        return EXIT_FAILURE; 
    }

    FILE* ptr_file = NULL;
    if ((ptr_file = fopen(argv[1])) == NULL)
    {
        printf("ERROR: Invalid parameter \"%s\"", argv[1]); 
        return EXIT_FAILURE;
    }

    char part[100];
    while (fgets(part, 100, ptr_file)  != NULL) 
    {
        fputs(part, stdout);
    }

    fclose(ptr_file);
    return EXIT_SUCCESS;
}
 
Zurück