Problem bei Tannenbaumprogramm
-
@Swordfish sagte in Problem bei Tannenbaumprogramm:
@wob sagte in Problem bei Tannenbaumprogramm:
In C++ ist char ein Typ, der im Prinzip wie eine Zahl funktioniert
sorry, aber so ist es etwas irreführend. char ist ein signed oder unsigned integer type. unterscheidet sich in genau garnichts von anderen integer types.
Sonderbehandlungen durch jede Ausgabefunktion findest du nicht erwähnenswert? Der ist ein großer Teil von Funktion.
-
@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.