[C++] Problem bei der Verarbeitung einer Textdatei

ThorThor

Grünschnabel
Wie im Titel beschrieben habe ich Probleme damit Textdateien zu verarbeiten.
Damit sind jetzt nicht Textdateien im allgemein gemeint sondern ich schaffe es nicht
die *.txt Datei so zu verarbeiten dass einzelne Wörter denn Verlauf des Programms verändern können.

Das Problem genau ist es das ich es nicht schaffe die Datei einzulesen und die einzelnen Wörter rauszusuchen.

Ich habe es mit der getline() Funktion ausprobiert und versucht die Daten in einem String
einem String-array und einem Char array zu speichern aber ich schaffe es nicht :S

Ich hoffe ihr habt da ein paar tipps
 
Poste mal was von deinem Code und welches Problem du genau dabei hast, dann helfen wir dir den Fehler zu finden.
 
Der Code den ich bisher habe:

Code:
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream TEXT("Text.txt");
    string text;

    getline(TEXT, text);

    char* s = const_cast<char*>(text.c_str());

    int x = text.length();

    for(int a = 0; a < x; a++)
    {
        
    }
}

Das Programm schafft es bisher die erste Zeile des Programms zu laden und auszugeben.
Ich habe das mit einem c-String gemacht, weil ich mir dachte so könnte man auch gut auf einzelne Buchstaben bzw. Wörter bis zu einem bestimmten Zeichen be-/verarbeiten kann.

Nur habe ich das Problem, dass immer wenn ich versuche zu überprüfen ob das Zeichen mit einem Vorgegebenem übereinstimmt das man keinen Pointer mit einem Integer Vergleichen kann.
 
Hallo,

Das schaut ja eh schon ganz gut aus. Auf C-String casten sollte eigentlich nicht notwendig sein, weil du mit [] auch auf Zeichen in einem String zugreifen kannst.

Zum Vergleich: Warum möchtest du mit einem Integer vergleichen, ich dachte du suchst nach Leerzeichen? Ich würd mal so was versuchen, vorausgesetzt du willst wirklich nur nach Leerzeichen trennen:

C++:
//Filestream öffnen
ifstream TEXT("Text.txt");

//Feststellen ob das öffnen funktioniert hat
if (TEXT.good())
{
	//Die ganze Datei einlesen
	std::string text = std::string(std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>());

	//Durch den String iterieren
	for (int i = 0; i < text.length(); i++)
	{
		//Überprüfen ob aktuelles Zeichen ein Leerzeichen ist
		if (text[i] == ' ')
		{
			//Leerzeichen gefunden -> neues Wort
		}
	}
}
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank fuer die schnelle Hilfe :D
Hab jetzt alles was ich fuer die weitere Arbeit :D
Also bin ich bald mit der ersten Version fertig :D
 
Zurück