2016-03-27 7 views
0

Visual C++ wird hOut nicht akzeptieren (Bezeichner ist nicht definiert). Ich habe versucht zu suchen und alle benötigten Bibliotheken hinzugefügt, aber es wird immer noch nicht funktionieren. Für mein Wissen die Bibliotheken muss ich zählen sind windows.h, cstdlib und stdlib.h Dies ist mein Code:Visual C++ akzeptiert nicht hOut

#include "stdafx.h" 
#include <iostream> 
#include <vector> 
#include <iomanip> 
#include <stack> 
#include <cstdlib> 
#include <string> 
#include <windows.h> 
#include <stdlib.h> 

using namespace std; 

class karta 
{ 
public: 
    karta(string litery[], bool licznik[][13], string kolory[]); 
    ~karta(); 
    void WypiszKarte(); 

private: 
    string litera; 
    string kolor; 
}; 

karta::karta(string litery[], bool licznik[][13], string kolory[]) 
{ 
    bool karta_zmieniona; 
    do 
    { 
     karta_zmieniona = 0; 

     int losowana_litera = 0 + rand() % 13; 
     int losowany_kolor = 0 + rand() % 4; 

     if (licznik[losowany_kolor][losowana_litera]) //jesli mozemy jeszcze wylosowac daną litere 
     { 
      licznik[losowany_kolor][losowana_litera]; 
      litera = litery[losowana_litera]; 
      kolor = kolory[losowany_kolor]; 
      karta_zmieniona = true; 
     } 





    } while (!karta_zmieniona); 
} 

void karta::WypiszKarte() 
{ 
    cout << setw(2) << kolor << litera; 
} 

karta::~karta() 
{ 

} 

int main() 
{ 
    string litery[13] = { "A" ,"1" ,"2" ,"3" ,"4" ,"5" ,"6" ,"7" ,"8" ,"9" ,"J" ,"Q" ,"K" }; 
    string kolor[4] = { "+" , "-" , "*" , "=" }; 
    bool licznik[4][13]; 

    for (int i = 0; i < 4; i++) 
    { 
     for (int j = 0; j < 13; j++) 
     { 
      licznik[i][j] = { true }; 
     } 

    } 

    vector<vector<karta>> plansza; 

    vector<karta> rzad; 




    for (int i = 0; i < 4; i++) 
    { 
     for (int i = 0; i < 7; i++) 
     { 
      rzad.push_back(karta(litery, licznik, kolor)); 
     } 

     plansza.push_back(rzad); 

     rzad.clear(); 
    } 

    for (int i = 0; i < 4; i++) 
    { 
     for (int i = 0; i < 6; i++) 
     { 
      rzad.push_back(karta(litery, licznik, kolor)); 
     } 

     plansza.push_back(rzad); 

     rzad.clear(); 
    } 


    for (int i = 0; i < plansza[i].size(); i++) 
    { 
     SetConsoleTextAttribute(hOut, BACKGROUND_RED); 
     cout << " " << i+1; 
     for (int j = 0; j < 8; j++) 
     { 
      plansza[j][i].WypiszKarte(); 
     } 
     cout << endl; 
    } 

    system("pause"); 



    return 0; 
} 

Warum könnte das sein?

+2

Und Sie haben 'hOut' von wo eigentlich? –

+2

Sie * wissen *, dass Variablen deklariert, definiert und initialisiert werden müssen, bevor Sie sie verwenden? –

+1

lesen Sie https://msdn.microsoft.com/en-us/library/windows/desktop/ms686047%28v=vs.85%29.aspx, das auf https://msdn.microsoft.com/en-us verweist /library/windows/desktop/ms686974%28v=vs.85%29.aspx, die deine Antwort hat – stijn

Antwort

1

Ihre Hout ist nicht definiert und nicht initialisiert, wenn Sie es nicht in "stdafx.h" definiert haben, (Weil die anderen Header-Dateien in der Standardbibliothek sind, werden sie nie Hout definieren) wenn ja, fügen Sie den Code ein:

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

vor Ihrem Code:

SetConsoleTextAttribute(hOut, BACKGROUND_RED);

(Anmerkung: Hout ist nur ein varible wir definieren, können Sie es zu jedem Rechts Namen ändern).

Verwandte Themen