Hallo,
dieses Programm soll eine Datei einlesen und den Inhalt hexadezimal ausgeben.
Ab der Zeile 33 verstehe ich nicht mehr den Code. Könntet ihr mir das näher erläutern?
----------------------------------------------------------------------------------------------------------------
Und eine weitere Frage hätte ich noch beim Arbeiten mit Dateien.
Wenn ich folgenden Code implementiere, dann müsste auf meinem Computer eine Datei mit dem Namen <Quelldateiname> existieren. Wo finde ich diese Datei?
dieses Programm soll eine Datei einlesen und den Inhalt hexadezimal ausgeben.
Ab der Zeile 33 verstehe ich nicht mehr den Code. Könntet ihr mir das näher erläutern?
C++:
/* cppbuch/loesungen/k1/einausgabe/16.cpp
Beispiel zum Buch von U. Breymann: Der C++ Programmierer; 4. Aufl., korr. Nachdruck 2016
Diese Software ist freie Software. Website: http://www.cppbuch.de/
*/
// Datei hexadezimal ausgeben
// Hilfsmittel: Zeichen mit String ermitteln
#include <iostream>
#include <cstdlib> // für exit()
#include <string>
#include <fstream>
using namespace std;
int main() {
cout << "Dateiname :";
string Quelldateiname;
cin >> Quelldateiname;
ifstream quelle(Quelldateiname, ios::binary);
if (!quelle) { // muss existieren
cerr << Quelldateiname << " kann nicht geöffnet werden!\n";
exit(-1);
}
// char ist notwendig, weil get(unsigned char&) nicht
// implementiert ist (GNU C++)
char c; // signed!
unsigned int count = 0;
while (quelle.get(c)) {
unsigned char uc = static_cast<unsigned char>(c);
unsigned int zahl = static_cast<unsigned int>(uc);
const string codierung{"0123456789ABCDEF"};
// 2 stellig ausgeben
cout << codierung.at(zahl / 16) << codierung.at(zahl % 16) << ' ';
if (++count % 20 == 0) {
cout << '\n';
}
}
cout << '\n';
}
----------------------------------------------------------------------------------------------------------------
Und eine weitere Frage hätte ich noch beim Arbeiten mit Dateien.
Wenn ich folgenden Code implementiere, dann müsste auf meinem Computer eine Datei mit dem Namen <Quelldateiname> existieren. Wo finde ich diese Datei?
C++:
cout << "Dateiname :";
string Quelldateiname;
cin >> Quelldateiname;
ifstream quelle(Quelldateiname, ios::binary);