Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » aus Datei lesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.11.2005, 15:53 Uhr
~gisi
Gast


Habe ein kleines Problem. Das ist nur ein Teil dieses Programmes. In einer Binärdatei (kann aber auch mit Textdatei, also mit rt und fgets herausgelesen werden) stehen über 1000 Bucheinträge, von Buchnummer bis Ausleihdaten usw.
Und beim Auslesen habe ich ein Problem alles Funktioniert, wenn er es herausliest liest er es erst ab der Hälfte der Textdatei heraus und gibt es aus. Ich will aber das er mir die ganze Textdatei ausgibt.
Mfg. gisi

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>


C++:
int main(int argc, char **argv){
    char filedata[1000][1000], eingabefile[30], hilf[1000];
    FILE *fp=NULL;
    int i=0;
    
    printf("Bitte geben Sie den Filename ein: ");
    gets(eingabefile);

    fp=fopen(eingabefile,"rt");
    if((fgets(hilf,sizeof(hilf)-1,fp))!=NULL){
        strcpy(filedata[i], hilf);
        printf("%s\n", filedata[i]);
        i++;
        
        
        
    }

    
    fclose(fp);

    return 0;
}



Bearbeitung:
biblio.dat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.11.2005, 17:07 Uhr
Pler
Einer von Vielen
(Operator)


Wozu brauchst du windows.h und conio.h?

So wie das Programm da dasteht, gibt es genau die erste Zeile einer Datei aus.
Mehr nicht.
i++ ist sinnlos.
Das soll bestimmt mal ne schleife werden?
Dann wird es auch funktionieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.11.2005, 20:36 Uhr
Pler
Einer von Vielen
(Operator)



c:

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
    char
                filedata[1000][1000],
                eingabefile[30],
                hilf[1000];
    FILE
                *fp = NULL;
    int
                i,
                anzahl;

    printf( "Bitte geben Sie den Filename ein: " );
    gets( eingabefile );

    fp = fopen( eingabefile , "rt" );

        anzahl=0;
        while( ( fgets( hilf, sizeof( hilf ) -1 , fp ) ) != NULL )
        {
                strcpy( filedata[anzahl] , hilf );
                anzahl++;
        }
        printf( "%d Zeilen wurden eingelesen\n" , anzahl );

        for( i = 0 ; i < anzahl ; i++ ) /* i < anzahl, da anzahl in der while eins zu weit zählt*/
        {
        printf( "%s" , filedata[i] );
        }
        printf( "%d Zeilen wurden ausgegeben\n" , i );

    fclose( fp );

    return 0;
}



so macht das meiner meinung nach sinn.
(Naja das Zwischenspeichern in einem Feld nicht, aber da könnte man jetzt die Zeilen auswerten oder sonstwas)

Dieser Post wurde am 13.11.2005 um 20:37 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: