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 ein int mit kleinem Wertebereich ist)



  • @wob das Problem ist es wird trotzdem nur, selbst wenn ich die Chars durch alles was geht ersetze, wird wieder nur (beispielsweise)
    p1
    p1
    p1
    p1
    p1
    p#
    ausgegeben.
    Ich vermute das liegt an h-- und h1-2 das die Chars a und b nicht geupdated werden wie kann ich das ändern.
    Viele dank im vorraus
    luis



  • Ich verstehe nicht, was du mir dieser Antwort sagen willst bzw. warum du scheinbar glaubst, dass ich erraten kann, was dein Problem ist.



  • @wob
    weil deine Antwort am meisten weitergeholfen hat.
    Habe jetzt auch verstanden was du meintest, aber wie soll ich das umsetzten, weil wenn ich anstatt der char ein integer einsetz kommt ja eine zahl raus.



  • @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.





  • @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 = leerzeichen

    Ach, 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.


Log in to reply