Что я делаю не так? Помогите, я новичок
Уже 4 часа сижу, а компилятор все ругается на "несуществующие переменные", которые есть. Вот код:
#include <iostream>
using namespace std;
void startUp();
void spwnVars();
void cmdCheck();
void startUp()
{
bool isCmdVarMade = false;
string command;
string echo;
cout << "#############" << endl;
cout << "## C++OS ##" << endl;
cout << "#############" << endl;
cout << "root@cppos# ";
}
int main()
{
startUp();
cmdCheck();
}
void spwnVars()
{
if (isCmdVarMade == false)
{
cin >> command;
isCmdVarMade == true;
}
}
void cmdCheck()
{
if (isCmdVarMade == false)
{
spwnVars();
}
if (command == "echo")
{
cout << "Input text to display." << endl;
cout << "Input: ";
cin >> echo;
cout << echo << endl;
cout << "root@cppos# ";
command = "0";
cin >> command;
cmdCheck();
}
else if (command == "shutdown")
{
// finish
}
}```
Ответы (1 шт):
Автор решения: Soup
→ Ссылка
Переменные то есть, но они локальные для функций, где Вы их объявляете. В таком случае, другие функции не будут видеть их.
Однако, переменную можно объявить вначале программы, до функций, и она будет глобальной.
Например:
#include <iostream>
using namespace std;
bool isCmdVarMade = false;
Или же можно нужным функциям передавать переменные по ссылкам.
Например:
// создание такой функции
void spwnVars(int &isCmdVarMade, int &command)
{
if (isCmdVarMade == false)
{
cin >> command;
isCmdVarMade == true;
}
}
// вызов
spwnVars(isCmdVarMade, command);
А вообще советую почитать, про локальные и глобальные переменные)
-> Вот