Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit fscanf

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
28.08.2003, 11:01 Uhr
~andreasK
Gast


Hallo hab mir aus excel ne Tabelle in eine TXT datei exportiert und jetzt will ich aus dieser Datei ab der zweiten Zeile und erst die zweite Spalte lesen!
kann mir jemand sagen wie ich das mache?

Ich probiers so aber dann liest er mir alles:

C++:
                    while (!feof(datei))
                    {
                        if (ferror(datei))
                        {
                            perror("Read error\n");
                            break;
                        }
                        strcpy(files[c].filename, dummy);
                        //fgets(files[c].filename, 100, datei);
                        fscanf(datei, "%s\n", files[c].inhalt);
                        c++;
                    }
                    fclose(datei);


meine Datei sieht so aus:


Code:
KPFIFIBU    P0000    System Setup    
KPFIFIBU    P0004A    User Defined Codes


ich will dort nur die P...... auslesen aus jeder Zeile.

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.08.2003, 11:18 Uhr
virtual
Sexiest Bit alive
(Operator)


Für zeilenweises lesen würde ich eher zu fgets raten und anschließend eben dann in der Zeile mit sscanf das zweite Feld ausfischen. Wenn es C sein muß. In C++ sieht es schon wieder ganz anders und einfacher aus. Aber scheinbar willst Du ja C:
(ungetestet)

C++:
char zeile[MAX_LAENGE_EINER_ZEILE];
char feld1[MAX_LAENGE_DES_ERSTEN_FELDES];

for(c=0;fgets(zeile, sizeof(zeile), datei)!=NULL;++c)
{
    if (2!=sscanf(zeile, "%s %s", feld1, files[c].inhalt))
    {
        perror("Zeile enthält keine zwei spalten!");
    }
}
if(!feof(datei))
{
    perror("fgets failed");
}



Bearbeitung:
Simplified source

--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 28.08.2003 um 11:22 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.08.2003, 12:30 Uhr
~andreasK
Gast


Danke hat mit geholfen

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.08.2003, 12:41 Uhr
Pablo
Supertux
(Operator)


Das Problem von fscanf, ist das fscanf nicht die ganze Zeile liest. Nimm lieber fgets.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
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: