Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

31

09.02.2009, 19:42

Kommt das Problem nicht hier?

C-/C++-Quelltext

1
std::cout << Zeichen; 

32

09.02.2009, 19:43

Problem gelöst! :) Ich caste einfach den int Wert 219 in ein char Wert dann funktioniert es.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
#include "console.h"
#include <iostream>

using namespace std;
using namespace Console;

int main ()
{
    int Wert = 219;
    char Zeichen = static_cast<char>(Wert);
    buildatriangle(20,0,7,Zeichen,3);
    return 0;
}
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

33

09.02.2009, 19:50

Zitat von »"PCShadow"«

char ist möglicherweise unsigned, dann passt 219 nicht mehr rein


Das würde ja dann erst recht reinpassen.. ;)

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

34

09.02.2009, 20:15

C-/C++-Quelltext

1
2
int Wert = 219;
char Zeichen = static_cast<char>(Wert); 


Wenn der char signed ist wird das aber gefährlich, ich glaube da ist der static_cast garnicht zimperlich und macht daraus wieder ne negative Zahl wegen Überlauf.

Vielleicht so?

C-/C++-Quelltext

1
unsigned char Zeichen = 219;


Ergibt ersteres denn das Zeichen, dass du suchst?

35

09.02.2009, 20:28

Ich hab das ganze jetzt so gelöst:


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void buildatriangle(unsigned short x, unsigned short y, unsigned short hoehe, int Zeichen, unsigned short attr)
   {
       int AnzahlZeichen = 1;
       int StartPosition = x + hoehe/2;

        HANDLE hCon = GetStdHandle( STD_OUTPUT_HANDLE );
        
            COORD pos = { x, y };
            pos.X = StartPosition;
         if ( !::SetConsoleCursorPosition( hCon, pos ) )
        { // Fehler }

        if(hoehe%2 == 0)
        {
            std::cout << "Fehler! Der Durchmesser muss eine ungerade Zahl sein." << std::endl;
        }
            
        for(int i=0; i<=hoehe; i++)
        {
            for (int j=1; j<=AnzahlZeichen; j++)
            {
                if ( ! SetConsoleTextAttribute( hCon, attr ) )
                {
                    // Platz für individuelle Fehlerbehandlung 

                }
                if (Zeichen > 0 && Zeichen <=255)
                {
                    std::cout << static_cast<unsigned char>(Zeichen);
                }
                else
                {
                    std::cout << "Fehler! int Wert ist zu groß für ein Zeichen" << std::endl;
                }
            }
            pos.X--;
            pos.Y++;
            AnzahlZeichen+=2;
            if ( !::SetConsoleCursorPosition( hCon, pos ) )
            { // Fehler }

        }   
   }

   
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

36

09.02.2009, 21:01

Ich versteh irgendwie nicht warum du überhaupt nen int benutzt :?:

37

10.02.2009, 11:03

Stimmt :idea: eigentlich würde ja ein :arrow: unsigned char ausreichen.
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

38

15.02.2009, 13:22

Zeichen an Cursoposition auslesen?

:?: Wie kann ich denn ein Zeichen an einer bestimmten Cursoposition auslesen?

Wenn man mit gotoxy(x,y) an irgendeine Stelle gehen kann dann müsste man doch auch irgendwie überprüfen können was sich an dieser Stelle für ein Zeichen befindet oder?
"Der Wald wäre sehr leise, wenn nur die begabtesten Vögel singen würden."

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

39

15.02.2009, 13:34

Schau mal hier:

http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx

Anonymous

unregistriert

40

15.02.2009, 13:35

In der MSDN gibt es viele Konsolen Funktionen eine davon ist die ReadConsoleOutput Funktion die sowas bewerkstelligt.

Werbeanzeige