Hi zusammen,
ich sitze gerade vor einem Problem in C++. Ich habe eine Textdatei, in der alle möglichen Zahlen stehen, getrennt durch jeweils ein Whitespace und/oder Newline. Die Zahlen sind zweistellig (wäre toll, wenn das ganze auch für dreistellige Zahlen möglich ist).
Bisher habe ich das so gemacht. Das funktioniert solange es sich um positive, einstellige Zahlen handelt.
Wie zu sehen ist befülle ich ein Array mit den Zahlen, wobei ich jedes Zeichen (solange es weder Whitespace noch Newline ist) in eine Zahl umwandele.
Das ist eine verdammt unelegante Methode. Hat eine Zahl mehr als eine Stelle funktioniert es nicht mehr. Weiß jemand, wie ich schöne Integerwerte für die Zahlen erhalten kann?
Der Dateiinhalt kann zum Beispiel sein:
Toll wäre eine Methode, bei der eine beliebige Anzahl an Stellen ausgewertet werden kann pro Zahl. Außerdem habe ich das Problem, dass manche Zahlen, z.B. "04" zwei Stellen haben. Diese Zahl müsste für einen gültigen Int-Wert in eine 4 konvertiert werden.
Weiß jemand Rat?
Beste Grüße
lama
ich sitze gerade vor einem Problem in C++. Ich habe eine Textdatei, in der alle möglichen Zahlen stehen, getrennt durch jeweils ein Whitespace und/oder Newline. Die Zahlen sind zweistellig (wäre toll, wenn das ganze auch für dreistellige Zahlen möglich ist).
Bisher habe ich das so gemacht. Das funktioniert solange es sich um positive, einstellige Zahlen handelt.
Code:
char sign;
std::ifstream file_in;
// file_in.open(filename, std::ios_base::in);
// Fill array:
while (!file_in.eof()) {
file_in.get(sign);
if (sign == ' ' || sign == '\n')
continue;
else {
/* Fill array with value of sign. sign-'0' converts
* char to int for the process. */
triangle[x][y] = sign - '0';
++x;
}
if (x > y) {
x = 0;
++y;
}
}
file_in.close();
Wie zu sehen ist befülle ich ein Array mit den Zahlen, wobei ich jedes Zeichen (solange es weder Whitespace noch Newline ist) in eine Zahl umwandele.
Das ist eine verdammt unelegante Methode. Hat eine Zahl mehr als eine Stelle funktioniert es nicht mehr. Weiß jemand, wie ich schöne Integerwerte für die Zahlen erhalten kann?
Der Dateiinhalt kann zum Beispiel sein:
Code:
04 23 73 22 01 76 98 56
95 31 65 09 21 37
Toll wäre eine Methode, bei der eine beliebige Anzahl an Stellen ausgewertet werden kann pro Zahl. Außerdem habe ich das Problem, dass manche Zahlen, z.B. "04" zwei Stellen haben. Diese Zahl müsste für einen gültigen Int-Wert in eine 4 konvertiert werden.
Weiß jemand Rat?
Beste Grüße
lama