Problem: c++ Inhalt einer Textdatei in erstellte Textdatei speichern

ich habe dich nicht angelogen oder zumindest wollte ich das nicht, mein abgabetermin war wirklich vor zwei wochen, da ich es aber nicht geschafft habe habe ich denen ne mail geschrieben ob sie mir noch etwas länger zeit lassen wollen außerdem bin ich froh wenn mir überhaupt geholfen wird...

außerdem bin ich durchs googeln jetzt noch auf einem anderen code gestoßen
C++:
char Convert (string hexNumber)
    // assumes 2 character string with legal hex digits
    {
    char aChar;
    char highOrderDig = hexNumber[0];
    char lowOrderDig = hexNumber[1];
       int GetDigitValue (char digit)
    {
    int asciiOffset, digitValue;
    if (digit >= 48 && digit <= 57)
    {
    // code for '0' through '9'
    }
    else if (digit >= 65 && digit <= 70)
    {
    // digit is 'A' through 'F'
    asciiOffset = 55;
    digitValue = digit - asciiOffset;
    return digitValue;
    }
    else if (digit >= ? && digit <= ?)
    {
    // code for 'a' through 'f'
    }
    else
    {
    // illegal digit
    }
    }
    aChar = lowOrderValue + 16 * highOrderValue;
    return aChar;
    }

indem dem forum wo ich war hatten die so ein ähnliches problem und haben es damit gelöst ich weiß leider nicht wie ich den in meinen code einbauen soll....
 
Und wieder mal:
sheel hat gesagt.:
Es wäre einfach einmal schön, wenn du dich an die hier gültigen Regeln hälst.
...
Schau dir einmal den ersten Link und die drittte Zeile meiner Signatur an.

Zum Code: Wozu so eine umständliche Funktion?
sscanf.

Wenn du
1) einen String (char-Array) a hast, in dem zB. "1a=d3" steht, wie es in deiner crt-Datei ist.
2) dieses 1a und das d3 in zwei chars auslesen willst (char b und c):
C++:
sscanf(a, "%x=%x", &b, &c);
Fertig.
Wenn du auch noch prüfen willst, ob gültige Werte drin waren:
C++:
if(2 != sscanf(a, "%x=%x", &b, &c))
    //Fehlermeldung
So einfach ist das.
Eine Zeile.
 
  • Gefällt mir
Reaktionen: CaS
So, ich hab jetzt nochmal versucht mittels sscanf die zeichen auszulesen und hab den part mit der crt datei wie folgt in das programm umgesetzt
C++:
// Programm 1.cpp: Hauptprojektdatei.

#include <stdafx.h>
#include <iostream> // wegen cout cin
#include <fstream> // wegen Dateistreamobjekt
#include <string> // wegen Datentyp string

using namespace std;

int main()
{
    ifstream file;
    string fileName ;

    ifstream datei;
	string line;
    string inhalt;
	char vorne, hinten; // deklarieren der beiden chars zum auslesen
	char buffer;
	
 
    datei.open("e:\\win2dos.crt"); // öffne crt. datei
    if(!datei)
    {
        cout << "Datei wurde nicht gefunden" << endl;
        getchar ();
        return -1;
    }
 
    while(getline(datei, line))
    {
	char* zeichen = new char[line.size() + 1];
 
	strcpy_s(zeichen, line.size() + 1, line.c_str());

	zeichen = new char[line.size() + 1]; // umwandlung von string in char-array

	if(zeichen = "#") // versuche # mit \0 zu ersetzen
	{
		zeichen = "\0";
	}

	if(zeichen = "=")

	{
	sscanf_s(zeichen, "%x=%x", &vorne, &hinten); // auslesen der beiden vorne hinten chars
	}

    }
 
    datei.close();

	cout << "Geben Sie bitte Pfad und Dateiname der Textdatei an:" << endl;

	cin >> fileName;
           
            file.open(fileName.c_str()); //  oeffen im Text-Modus
            if(file)
            {
                        string text; // Haupttext
                        while(!file.eof())
                        {
                                    
                                    file.get(buffer); // chars der neuen datei werden ausgelesen

									if(buffer = vorne) // ...und mit den chars hinten aus der steuerdatei ersetzt

									{
									buffer = hinten;
									}
                                     
                        }
                        cout << buffer << endl; // fertigen Text ausgeben

						getchar ();

                        file.close();

		

			ofstream file;
            string fileName = "Beispiel.txt";
           
            file.open(fileName.c_str()); // oeffen im Text-Modus
            if(file)
            {
                      
                        file << buffer; // fertigen Text speichern
                        file.close();
            }
            else
            {
                        cout << "Datei nicht gefunden!";

						getchar ();
            }
            cin.get();
            return 0;
            }
            else
            {
                        cout << "Datei nicht gefunden!";

						getchar ();
            }

            getchar ();

            return 0;
}
wenn ich das programm ausführe erstellt er aber keine beispiel datei und gibt in der Konsole nur das zeichen K wieder.....ich hab mir bevor ich das hier reingestellt habe wirklich nochmal den ganzen thread durchgelesen ich wusste jetzt wirklich nicht besser wie ich meine aufgabe beenden konnte....bitte nochmal um Hilfe....
 
Zurück