Problem bei Tannenbaumprogramm
-
@SeppJ sagte in Problem bei Tannenbaumprogramm:
durch jede Ausgabefunktion
doch nur bei den io und sstreams
-
@Swordfish
Ich weiß nicht, aber der Code erinnert mich ein wenig an Python.Und unter Python liefert der Ausdruck 4 * ' ' vier Leerzeichen. Folgender Code liefert einen kleinen Tannenbaum.
4 * ' ' + 1 * '*' 3 * ' ' + 3 * '*' 2 * ' ' + 5 * '*'
Vielleicht weht daher der Wind.
@luis
Ist dir bewußt dass jedes Zeichen intern durch eine Zahl dargestellt wird?
-
@Quiche-Lorraine sagte in Problem bei Tannenbaumprogramm:
@luis
Ist dir bewußt dass jedes Zeichen intern durch eine Zahl dargestellt wird?und dass ein
char
nur ein Zeichen aufnehmen kann
(und eigentlich auch nur einint
mit kleinem Wertebereich ist)
-
Dieser Beitrag wurde gelöscht!
-
Ich verstehe nicht, was du mir dieser Antwort sagen willst bzw. warum du scheinbar glaubst, dass ich erraten kann, was dein Problem ist.
-
Dieser Beitrag wurde gelöscht!
-
@luis Du könntest erstmal freundlicherweise vorarbeit leisten und deinen Eingangsbeitrag zu diesem Thema ordentlich formatieren und Deine Variablen sinnvoll benennen. So habe ich nichtmal Lust das zu lesen.
-
Dieser Beitrag wurde gelöscht!
-
@luis du kannst das auch gleich mit deinem aktuellen Coden machen und den hier rein Stellen.
-
@luis sagte in Problem bei Tannenbaumprogramm:
Output den ich haben will
-----*
----***
---*****
--*******
-*********
-----#
bindestrich = leerzeichenAch, ich weiß doch auch nicht.
#include <cstdlib> #include <iostream> #include <string> int main() { std::cout << "Height: "; int height; if (!(std::cin >> height) || !height) { std::cerr << "Input error.\nbye.\n\n"; return EXIT_FAILURE; } for (int line{}; line + 1 < height; ++line) std::cout << std::string(height - line - 1, ' ') << std::string(line * 2 + 1, '*') << '\n'; std::cout << std::string(height - 1, ' ') << "#\n"; }
oder mit manipulators. Liest sich aber viel hässlicher:
for (int line{}; line + 1 < height; ++line) std::cout << std::setw(height - line - 1) << std::setfill(' ') << ' ' << std::setw(line * 2 + 2) << std::setfill('*') << '\n'; std::cout << std::setw(height + 1) << std::setfill(' ') << "#\n";
oder mit schleifchen:
for (int line{}; line + 1 < height; ++line) { for (int spaces{ 1 }; spaces < height - line; ++spaces) std::cout.put(' '); for (int stars{}; stars < line * 2 + 1; ++stars) std::cout.put('*'); std::cout.put('\n'); } for (int spaces{ 1 }; spaces < height; ++spaces) std::cout.put(' '); std::cout << "#\n";
aber man sollte es wahrscheinlich bleiben lassen. Es wird nur hässlicher.