File stream in integer umwandeln

hallo,
Ich möchte aus einer Datei die Integer Werte suchen und ausgeben. Wie macht man
sowas?

Die Inhalt von der Datei:
Nagel 100
Hammer 2
Feile 3
Hammer 7
Nagel 1000
Feile 4
Nagel 250

Und als Ergebniss soll alle Werte dann summieren und ausgegeben:
-> 1366

gruss,
sylvester

Hallo Sylvester!

Ich möchte aus einer Datei die Integer Werte suchen und
ausgeben. Wie macht man
sowas?

Och, das ist ganz leicht… du brauchst nur filestreams und atoi();

  • Filestreams:

    #include

    // Lesenden Stream erzeugen:
    const char* dateiname = „bla.txt“;
    string wort;
    ifstream lesestrom;

    lesestrom.open(dateiname, ios::in);
    lesestrom >> wort; // schreibt bis zum nächsten Trennzeichen in Wort

    if(lesestrom.eof()) // Falls wir am Ende der Datei sind
    { // …
    }

  • atoi

    #include
    const char* wort1 = „42“;
    const char* wort2 = „Schalke_04“;
    const char* wort3 = „23-Paranoia!23!“;

    int zahl = atoi(wort1); // zahl = 42
    int zahl = atoi(wort2); // zahl = 0
    int zahl = atoi(wort3); // zahl = 23

Ja, ich hab jetzt nicht alles aufgelöst, weil es klingt ja doch sehr nach Hausaufgabe… :wink:
Zu den Themen gibts auch wirklich VIEL im Netz, also… das sollte recht schnell gelöst sein.

(Wobei die Lösung, die ich andeute, vielleicht nicht die schnellste ist - aber auf jeden Fall die bequemste :wink:)

kvida

hallo sylvester,

Ich möchte aus einer Datei die Integer Werte suchen und
ausgeben. Wie macht man sowas?

Wie willst Du’s denn haben? Mehr in C (FILE*)
oder eher C++ (std::ifstream).

Die Inhalt von der Datei:
Nagel 100
Hammer 2
Feile 3
Hammer 7
Nagel 1000
Feile 4
Nagel 250

Interessant: In Perl würde das
„gesamte“ Programm so aussehen:

 while () { $summe += $\_[1] if (split) ; }

 print $summe;

Aufruf mit: _perl test.pl
(ergibt 1366)

Grüße

CMБ_