# C++ Ergebniss berechnen in einer TXT datei speichern und wieder ausgeben



## Plattfuss (19. September 2006)

Hallo ich bin ein C++ Anfänger ich habe folgendes vor Ich möcht 2 user Eingaben zusammen   
Rechnen dieses Ergebniss ausgeben und in einem TXT file speichern wenn das Tool neu gestartet wird soll die Anzahl aus dem TXt file ausgelesen werden und das neue ergebniss dazu geschrieben wird aber nicht überschreiben=)


----------



## Sircoly (19. September 2006)

_Halli Hallo_,

am besten schaust du dir speziell
 - Input || Output
 - Funktionen
 - If-Abfragen
 - While-Schleifen
 - Dateihandling
unter C++ an.

Und am besten immer in STL proggn, um Plattformunabhängig zu bleiben.
Stichwörter sind ja oben gegannt. 

Und zum Schluss noch die Standart-C++-Referenz für alle fälle.


----------



## Plattfuss (19. September 2006)

also schleifen und das bekomm ich schon hin eigentlich check ich es nicht das ergebnisszu speichern also er fängt bei mir immer wieder bei null an und wie ich eine datei erstelle wo dann anschließend die ergebnisse rein geschrieben werden ist mir ein rätsel=)


----------



## Sircoly (19. September 2006)

_Halli Hallo,_

du kennst den unterschied zwischen 'ifstream' und 'ofstream'?
Du musst nämlich kein 'ifstream' benutzen.
'ifstream' = Lesen
'ofstream' = Schreiben

Hier ein kleines Beispiel mit Kommentaren von mir:

```
#include <iostream>
#include <fstream>
.......

bool Input(char* ext_cTarget, char ext_cValue[])
{
    /***** Deklarieren *****/
    std::ofstream m_osFile;                                                     // Variable bekanntgeben
    int m_iValue;                                                               // Variable für den Konvertierten Wert

    /***** Initialisieren *****/
    m_iValue = atoi(ext_cValue);                                                // Konvertierung von char* zu int
    m_osFile.open(ext_cTarget);                                                 // Datei öffnen und somit m_osFile initialisieren

    /***** Ausführen *****/
    m_osFile << m_iValue;                                                       // Schreibt in die geöffnete Datei

    m_osFile.close();                                                           // Schließt Datei wieder

    /***** Termination *****/
	return true;														        // Funktion Terminieren
}
```

Das Auslesen wäre dann wie folgt:

```
#include <iostream>
#include <fstream>
.......

bool Output(char* ext_cTarget)
{
    /***** Deklaration *****/
	std::ifstream m_isFile;                                                     // Variable bekanntgeben
	char m_cPuffer;                                                             // Variable für einen Buchstaben(Puffer)

	/***** Initialisierung *****/
	m_isFile.open(ext_cTarget);                                                 // Datei öffnen und somit m_isFile initialisieren

    m_cPuffer = m_isFile.get();                                                 // Den ersten Buchstaben aus der Datei zwischenspeichern
    while( !m_isFile.eof() )                                                    // Solange ausführen, bis das Ende der Dtei erreicht ist
    {
       std::cout << m_cPuffer;                                                  // Gibt den zwischengespeicherten Buchstaben aus
        m_cPuffer = m_isFile.get();                                             // Den nächsten Buchstaben aus der Datei zwischenspeichern
    }

    /***** Termination *****/
	return true;														        // Funktion Terminieren
}
```


----------



## Plattfuss (19. September 2006)

ext_cTarget<<---- sehe ich das richtig das das in dem Beipiel der name der datei ist?
muss die datei an einem bestimmten ort liegen oder wird es einfach gefunden wasman möchte?^^

vielen dank für die hilfe


----------



## Sircoly (19. September 2006)

_Halli Hallo,_

ja, die Variable 'ext_cTarget' ist die Angabe, welche Datei geöffnet werden soll.
Der Ort ist frei definierbar.
du kannst:

```
Output("config.ini");
```
machen, als auch:

```
Output("..\\config.ini");
```
oder auch:

```
Output("c:\\config.ini");
```
oder auch ....

Wie du willst.
Wobei du darauf achten musst: Wenn du ein '\' eingibst, MUSST du 2 davon machen, weils sonst als Escape-Sequenz interpretiert wird.


----------

