Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
3年前关闭。
Visual C ++将不接受hOut(标识符未定义)。我尝试搜索并添加了所有需要的库,但仍然无法正常工作。就我所知,我需要包括的库是windows.h,cstdlib和stdlib.h。这是我的代码:
为什么会这样呢?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
3年前关闭。
Visual C ++将不接受hOut(标识符未定义)。我尝试搜索并添加了所有需要的库,但仍然无法正常工作。就我所知,我需要包括的库是windows.h,cstdlib和stdlib.h。这是我的代码:
#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;
}
为什么会这样呢?
最佳答案
如果您未在"stdafx.h"
中定义hOut,则它是未定义和未初始化的(因为其他头文件在标准库中,它们将永远不会定义hOut),请添加代码:HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
在您的代码之前:SetConsoleTextAttribute(hOut, BACKGROUND_RED);
(注意:hOut只是我们定义的变量,您可以将其更改为任何合法名称)。
09-10 09:42