Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Нужна помощь по C++

Ebrus_yp Ученик (207), закрыт 1 месяц назад
Кароче. Я делаю проект на С++:

#include <iostream>

using namespace std;

int main()
{
char* command, file;
int start;
start = 1;
cout << "TBPACH OS V 1.0" << endl;
while(start = 1)
{
cout << ":~$ ";
cin >> command;
if(command == "?")
{
system("cls");
cout << "ECTOS V 1.0" << endl;
cout << "CREATED BY TBPACH | TECHNOLOGY BY PECHENKIN AND CHERTOLIN" << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "? - COMMAND LIST" << endl;
cout << " " << endl;
cout << "list - BROWSING FILES" << endl;
cout << " " << endl;
cout << "open - OPEN FILES" << endl;
cout << " " << endl;
cout << "calc - PERFORM A NUMERICAL OPERATION" << endl;
cout << " " << endl;
cout << "off - POWER OFF" << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << " " << endl;
cout << "PRESS ANY KEY TO EXIT" << endl;
system("PAUSE>nul");
system("cls");
cout << "ECTOS V 1.0" << endl;
}

if(command == "list")
{
system("cls");
cout << "Enter the path" << endl;
cin >> file;
system("cls");
}
}
}


компилируется нормально, а когда запускается после ввода пишет выход с кодом 3221225477. Что делать?
Лучший ответ
Николай Веселуха Высший разум (368760) 1 месяц назад
 #include <iostream> 
#include <string>
#include <Windows.h>
using namespace std;
int main() {
SetConsoleTitleW(L"TBPACH OS V 1.0");
string command, file;
while (true) {
puts("ECTOS V 1.0");
cout << ":~$ ";
cin >> command;
if (command == "?") {
puts("CREATED BY TBPACH | TECHNOLOGY BY PECHENKIN AND CHERTOLIN\n\n");
puts("? - COMMAND LIST\n");
puts("list - BROWSING FILES\n");
puts("open - OPEN FILES\n");
puts("calc - PERFORM A NUMERICAL OPERATION\n");
puts("off - POWER OFF\n");
puts("\nPRESS ANY KEY TO EXIT");
system("pause > nul");
} else if (command == "list") {
cout << "Enter the path: ";
cin >> file;
} else if (command == "open") {
// TODO:
} else if (command == "calc") {
// TODO:
} else if (command == "off") {
break;
}
system("cls");
}
}
Ebrus_ypУченик (207) 1 месяц назад
спасибо, попробую
Николай Веселуха Высший разум (368760) Пожалуйста.
Остальные ответы
Def Гений (63648) 1 месяц назад
char* command; // Указатель на рандомный адрес, без какого либо участка выделенной памяти.
...
cin >> command; // Пишем в это самое рандомное неаллоцированное место, получаем неопределённое поведение.

Как исправить - открываем учебник по языку, раздел "работа с сишными строками", изучаем, как правильно выделять, вводить, использовать и удалять, затем понимаем, что нужно учить всю систему адресации в языке Си с самых азов - с таким знанием работы с адресами и выделением памяти как в представленном коде нельзя даже пытаться начинать сделать какой-либо проект.

Потом понимаем, что в языке c++ нет никакой необходимости использовать сишные строки, берем учебник по c++ изучаем, что такое std::string и как с ним работать.
ПапаВысший разум (143744) 1 месяц назад
Они не собираются ничего изучать. Им надо сдать портянку правдоподобно выглядящего кода, чтоб преподаватель оценку поставил, и немедленно об этом забыть.
Похожие вопросы