Zahlen mit fstream einlesen



  • Moin,

    Wie ist es möglich mit der fstream Klasse Zahlen aus einer Datei einzulesen, sodass man sie auch als Zahlen benutzen kann und sie nicht wie Buchstaben beahndelt werden.
    Die datei enthält folgende Werte:
    map;100,200;

    Mein momentaner Code sieht so aus:

    #include <iostream.h>.
    #include <fstream.h>.
    
    main()
    {
    ifstream datei;
    datei.open("op.txt");
    
    if(datei.bad())
    {
    	cout << "Datei ist Fehlerhaft oder existiert nicht";
    }
    
    char buffer[10];
    
    for(int x=0;x<10;x++)
    {
    
    	buffer[x]=datei.get();
    	if(buffer[x]==' ')
    	{
    		buffer[x]='\0';
    		x=10;
    	}
    
    }
    
    cout << buffer;
    }
    

    Jetzt steht der Pointer vor der 100 und nun will ich die Zahl bis zum nächsten Semikolen einlesen. Ich habe es acuh schon mit cin verscuht, aber dann passiert bei mir nichts.

    Ich benutze VC++ 6.0 , glaube aber nichtd as es daran liegt.

    Ich hoffe auf baldige Antwort, thx schonmal im vorraus.

    mfg Wanny



  • Mal abgesehen von deinem "Format" map;100;200 solltest du dich mal über istream_iterator informieren.

    MfG Spacelord



  • Das finde ich schon zu hoch gegriffen für einen Anfänger.

    Wanny: Dateien kannst du genauso behandeln wie cin/cout. Sieh dir mal folgendes an:

    #include <fstream>
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int i = 42;
    	ofstream out("file.txt");
    	out << i << " ist cool." << flush;    // flush ist wichtig, weil sonst erst beim Zerstören von out in die Datei geschrieben werden würde
    
    	ifstream in("file.txt");
    	int j;
    	in >> j;
    	cout << j;
    }
    

Log in to reply