Zeilen nummerieren
-
Hi, ich arbeite an meinem ersten Programm.
Es soll den Inhalt einer Textdatei Zeile für Zeile nummerieren.
Aber was als Ausgabe dabei rauskommt ist irgendwie chaotisch.
Währe für anregungen und Ideen sehr Dankbar!#include <fstream> #include <iostream> #include <conio.h> using namespace std; int main() { ifstream lesen("in.txt"); ofstream schreiben("out.txt"); int count = 0; while(1) { count++; schreiben << count+"lesen"<< endl; if(kbhit()) return 0; } return 0; }
-
Was kommt denn raus? 1lesen, 2lesen, 3lesen?
Evtl. solltest Du in der Schleife tatsächlich was aus "lesen" lesen - und nicht nur das Wort "lesen" in die Datei schreiben... (Hint: std::getline aus <string>)
-
Hmm ... nein das kommt wohl kaum dabei raus ^^ er wird versuchen die Zahl als char zu interpretieren ... komische Sache

#include <fstream> int main() { std::ifstream read_stream("in.txt"); if (!read_stream) return 1; std::ofstream write_stream("out.txt"); if (!write_stream) return 1; std::string line; for (std::size_t i = 0; std::getline(read_stream, line); ++i) write_stream << i << ": " << line << std::endl; }... wenn du es noch erklärt haben willst ... sag bescheid!
-
Ohje. "Zahl + String" nicht erkannt...

-
Ist ja wie gesagt mein erstes Programm und habe grosse Pläne.

Ich denke jetzt kann ich damit weiter testen, und es in andere Codes einfügen.
Danke
-
Hallo zusammen,
#include <fstream> #include <vector> #include <string> #include <iomanip> #include <iostream> using namespace std; int digits(int n) { int r=1; while (n/=10) ++r; return r; } int main(int argc, char *argv[]) { ifstream is("in.txt"); // Fileinputstream vector<string> v; // Container string tmp; while (getline(is, tmp)) v.push_back(tmp); // zeilenweise einlesen int n = digits(v.size()+1); // Anzahl Ziffern für Nummerierung for (int i=0; i<v.size(); ++i) cout << setw(n) << i << ' ' << v[i] << endl; }Die Ausgabe kann auch in einen Fileoutputstream geleitet werden. Gibt es eine einfachere Art die Anzahl der Ziffern für die Nummerieung zu bestimmen?
Grüße Martin
--
Edit: Ooh... zu langsam. Mein Programm formatiert aber die Zeilennummern schöner... ätsch
-
lucky_tux schrieb:
...
Gibt es eine einfachere Art die Anzahl der Ziffern für die Nummerieung zu bestimmen?
...#include <sstream> #include <iostream> using namespace std; int main() { int i = 2453456; stringstream ss; ss << i; cout << ss.str().size() << endl; return 0; }