Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545

Мой код не запускается на Visual studio C++

24.04.2019, 01:19. Показов 3826. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Я программирую в xcode, потому что на Mac нет Visual для Си++. Но мне говорят, что ошибка компиляции, ошибка исполнения моей программы на визуал, а на xcode все работает. Как исправить ошибки чтобы в визуал программа работала нормально?
C++
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
//
//  main.cpp
//  mashina
//
//  Created by Вадим Балашов on 21/04/2019.
//  Copyright © 2019 Вадим Балашов. All rights reserved.
//Задание 1:
/*Реализовать структуру «Машина» (цвет, модель, номер). Номер машины может представлять из
себя или пятизначный номер или слово до 8 символов. Номер реализовать как объединение.
Создать экземпляр структуры «Машина» и реализовать для него следующие функции:
Заполнение машины
Печать машины
Создать массив из 10 экземпляров структуры «Машина» и реализовать для него следующие
функции:
Редактировать машину
Печать всех машин
Поиск машины по номеру/*/
 
#include <iostream>
using namespace std;
 
struct Car {
    char const* color;
    char* model;
    char* number;
};
Car car;
 
enum UserChoice {
    Exit=0,
    Edit=1,
    Print=2,
    Search=3
};
 
void fillCar(struct Car* car);
int editCar(struct Car* &car, int carCount); // редактировать машишу
void printCars(struct Car* &car, int carCount); // печать всех машин
int searchByNumber(struct Car* &car, int carCount); // поиск авто по номеру
void deleteArrays(struct Car* &car, int carCount, char* &min, char* &buffer);
 
int main(int argc, const char * argv[]) {
    setlocale(0, "");
    
    int intUserChoice;
    enum UserChoice userChoice;
    char* min=new char;
    char* buffer=new char;
    int carCount=10;
    struct Car* car=new Car[carCount];
    for (int i=0; i<carCount; i++) {
        car[i].color=new char;
        car[i].model=new char;
        car[i].number=new char;
    }
    fillCar(car);
    
    do
    {
        cout<<endl<<endl<<"СТРУКТУРА МАШИНА им. Балашова В.В."<<endl<<"=========="<<
        endl<<endl<<
        "Выйти - 0"<<endl<<"Редактировать машину - 1"<<endl<<
        "Вывод машин - 2"<<endl<<"Искать по номеру - 3"<<endl;
        cin>>intUserChoice;
        userChoice=(enum UserChoice)intUserChoice;
        
        switch (userChoice) {
            case Exit:
                cout<<"ВЫХОД"<<endl;
                break;
                case Edit:
                editCar(car, carCount);
                case Print:
                printCars(car, carCount);
                case Search:
                searchByNumber(car, carCount);
                break;
            default:
                cout<<"значение не верное!";
                break;
        }
    } while (userChoice!=Exit);
    deleteArrays(car, carCount, min, buffer);
}
 
void fillCar(struct Car* car)
{
    // car 1
    
    car[0].color="Аделаида";
    car[0].model="Хрюша";
    car[0].number="А123485BC";
    // car 2
    car[1].color="Адского пламени";
    car[1].model="Скотовоз";
    car[1].number="B23234A";
    // car 3
    car[2].color="Бедра испуганной нимфы";
    car[2].model="Мерин";
    car[2].number="С72567Д";
    // car 4
    car[3].color="Бланжевый";
    car[3].model="аккордеон, баян";
    car[3].number;"В172987М";
    // car 5
    car[4].color="Блакитный";
    car[4].model="ведровер";
    car[4].number="К82556П";
    // car 6
    car[5].color="Бусый";
    car[5].model="корова";
    car[5].number="Е11453Н";
    // car 7
    car[6].color="Вайдовый";
    car[6].model="силикат";
    car[6].number="Г34456АА";
    // car 8
    car[7].color="Вердепешевый";
    car[7].model="Бочка";
    car[7].number="Г45678К";
    // car 9
    car[8].color="Винный";
    car[8].model="Титька";
    car[8].number="К67316Х";
    // car 10
    car[9].color="Влюбленной жабы";
    car[9].model="Фьюжик, Фузя";
    car[9].number="И44319К";
}
 
int editCar(struct Car* &car, int carCount)
{
    int userCarChoice;
    int userEditChoice;
    char* newData=new char;
    cout<<"ОТРЕДАКТИРОВАТЬ МАШИНУ"<<endl<<"=========="<<endl;
    
    for (int i=0; i<carCount; i++) {
        cout<<i+1<<": "<<car[i].color<<" ("<<car[i].model<<")"<<"["<<car[i].number<<" / "<<endl;
    }
    cout<<endl<<"ввести машину(номер): ";
    cin>>userCarChoice;
    if (userCarChoice>10 || userCarChoice<1) {
        cout<<"неверное значение!"<<endl;
        return 1;
    }
    userCarChoice--;
    cout<<"введите вид редактирования: "<<endl<<"1 - цвет"<<endl<<"2 - модель"<<endl<<"3 - номер"<<endl;
    cin>>userEditChoice;
    
    switch (userEditChoice) {
        case 1:
            cout<<"введите новый цвет машины ";
            cout<<newData;
            car[userCarChoice].color=newData;
            break;
            case 2:
            cout<<"введите новую модель машины ";
            cout<<newData;
            car[userCarChoice].model=newData;
            case 3:
            cout<<"введите новый номер машины ";
            cin>>newData;
            car[userCarChoice].number=newData;
            break;
        default:
            cout<<"неверное значение"<<endl;
            break;
    }
    cout<<"новые данные: "<<endl<<car[userCarChoice].color<<" ("<<car[userCarChoice].model<<")"<<"["<<
    car[userCarChoice].number<<" / "<<endl;
    //delete [] newData;
    return 0;
}
 
void printCars(struct Car* &car, int carCount)
{
    for (int i=0; i<carCount; i++) {
        for (int i=0; i<carCount; i++) {
            cout<<i+1<<": "<<car[i].color<<" ("<<car[i].model<<")"<<"["<<car[i].number<<" / "<<endl;
        }
    }
}
 
int searchByNumber(struct Car* &car, int carCount)
{
    char* searchNumber=new char;
    cout<<"введите номер машины ";
    cin>>searchNumber;
    int size=strlen(searchNumber);
    int count=0;
    bool number=false;
    
    for (int i=0; i<size; i++) {
        if ((searchNumber[i] > 64 && searchNumber[i] < 91) || (searchNumber[i] > 96 && searchNumber[i] < 123))
            { }
            else
            {
                cout<<"неверное значение!";
                return 1;
            }
        }
        for (int i=0; i<carCount; i++) {
            for (int j=0; j<size; j++) {
                if ((searchNumber[j] == car[i].number[j]) || ((int)searchNumber[j]) - 32 == car[i].number[j] || ((int)searchNumber[j] + 32 == (int)car[i].number[j])) {
                    count++;
                }
                if (count == size) {
                    cout<<car[i].color<<" ("<<car[i].model<<")"<<"["<<car[i].number<<" / "<<endl;
                    number=true;
                }
            }
            count=0;
        }
        if (!number) {
            cout<<"НЕ НАЙДЕНО"<<endl;
        }
        delete [] searchNumber;
        return 0;
    }
 
void deleteArrays(struct Car* &car, int carCount, char* &min, char* &buffer)
{
    delete [] min;
    delete [] buffer;
}
Миниатюры
Мой код не запускается на Visual studio C++  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2019, 01:19
Ответы с готовыми решениями:

Не запускается в Visual Studio
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include...

Не запускается отладка в Visual Studio
Скопировал простую программу для С++ в Visual Studio 2017 #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

В Visual studio C++ 2010 не запускается исплняемый файл
При компиляции 1&gt;Построение успешно завершено. Но 1&gt;C:\Program Files...

7
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,428
24.04.2019, 03:09
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
C++
1
char* newData=new char;
Под один символ память выделена.
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
C++
1
2
3
cout<<"введите новый цвет машины "; 
cout<<newData;
car[userCarChoice].color=newData;
Это разве ввод? Дальше не смотрел.
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
24.04.2019, 03:13  [ТС]
Я не понял ваш ответ.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,428
24.04.2019, 03:16
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
Я не понял ваш ответ.
Что конкретно не понял? Что память под один символ выделил? Или что вместо ввода у тебя вывод?
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
24.04.2019, 03:19  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Что конкретно не понял? Что память под один символ выделил? Или что вместо ввода у тебя вывод?
Да, это.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,428
24.04.2019, 15:51
Тогда до кучи... Тут под один символ память выделяешь:
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
C++
1
2
char* min=new char; 
char* buffer=new char;
И тут:
Цитата Сообщение от Anonymous4722 Посмотреть сообщение
C++
1
2
3
4
5
6
for (int i=0; i<carCount; i++) 
{ 
    car[i].color=new char; 
    car[i].model=new char; 
    car[i].number=new char; 
}
И так далее по коду.

Добавлено через 4 минуты
Далее, в fillCar(), утечка памяти: указатели, которые до этого указывали на память, выделенную в куче под один символ, теперь указывают на строковые литералы (память только для чтения).
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
24.04.2019, 16:10
Anonymous4722, ты похоже не понимаешь кое-чего. Размер массива надо чётко знать ДО того как начал его вводить. Нельзя написать new char, не указав сколько символов планирует вводить пользователь в строку, сечёшь?
0
 Аватар для Anonymous4722
5 / 3 / 2
Регистрация: 29.11.2012
Сообщений: 545
24.04.2019, 23:45  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
сечёшь?
да
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2019, 23:45
Помогаю со студенческими работами здесь

Visual studio запускается только под правами администратора
Добрего. вижуал студио ранее работала под обычной учеткой, решил закинуть в нее шаблонов, она потребовала доступ до реестра, дал ей...

Программа, написанная на Visual Studio 2010 в Windows7, не запускается Windows XP
Возможно вопрос поднимался (если да, то можно было бы прилепить), но поиском не нашел. Создал консольный проект вин32, написал код -...

Переделать код С++ (Visual Studio 2008)
Составить программу решения задачи вычисления значения функции с использованием сложной структуры ветвления, и выводом результата на экран....

Не работает код в visual studio 2013
Код C++ Построение прямой по двум точкам. Вывести уравнение прямой на экран ================= #include &lt;stdlib.h&gt; #include...

Переделать код С++ (Visual Studio 2008)
Составить программу решения задачи вычисления значения функции с использованием сложной структуры ветвления, и выводом результата на экран....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru