Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.11.2020
Сообщений: 16

Не могу изменить данные при вводе

27.04.2021, 01:40. Показов 701. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
#include <Windows.h>
#include <string>
 
using namespace std;
 
void error() {
    if (cin.fail()) {
        cout << "Ошибка ввода!" << endl;
        exit(0);
    }
}
 
class Patient
{
public:
    
    char name[30];
    char sname[30];
    char hname[20];
       
    char dig[30];
    friend void change(Patient&);
    void show()
    {
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
 
        cout << "Имя: " << name << endl;
        cout << "Фамилия: " << sname << endl;
        cout << "Отчество: " << hname << endl;
        cout << "Адрес: " << life << " " << endl;
        cout << "Номер мед. карты: " << medc << endl;
        cout << "Дигноз: " << dig << endl;
 
    }
    Patient()
    {
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
 
        cout << "Введите имя  пациента: " << endl; cin >> name;
        cout << "Введите фамилию пациента: " << endl; cin >> sname;
        cout << "Введите отчество пациента: " << endl; cin >> hname;
        cout << "Введите адрес пациента: " << endl; cin >> life;
        cout << "Введите номер мед. карты пациента: " << endl; cin >> medc;
        cout << "Введите диагноз пициента: " << endl; cin >> dig;
        cout << "=======================================" << endl;
        system("cls");
    }
    
    void setmedc(int a) {
        medc = a;
    }
    int getmedc() {
        return medc;
    }
  
private:
    int medc;
    string life;
    string getlife()
    {
        return life;
    }
    int patient;
};
 
void change(Patient& patient)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int a, new_medc;
    string new_life;
    cout << "\nВыберите позицию: ";
    cout << "\n1. Адрес: " << patient.life << endl;
    cout << "2. Номер мед. карты: " << patient.medc << endl;
  
    cin >> a;
    error();
    switch (a)
    {
    case 1:
    {
        cout << "Задайте новый адрес: ";
        cin >> new_life;
        system("cls");
        break;
    }
    case 2:
    {
        cout << "Введите новый номер мед. карты: ";
        cin >> new_medc;
        system("cls");
        break;
    }
    default:
    {
        error();
        break;
    }
    }
}
 
int main(int m)
{
    Patient* patient;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout << "Количество пациентов (число): "; cin >> m; 
        error();
    system("cls");
    cout << "==================================" << endl;
    patient = new Patient[m];
    
 
    for (int i = 0; i < m; i++) {
        cout << "==============================" << endl;
        patient[i].show();
    }
    int p;
    cout << "\nВведите номер пациента: ";
    cin >> p;
    error();
 
    int k; 
    change(patient[p-1]);
    for (int k = 0; k < m; k++) {
        cout << k + 1 << ". ";
        patient[p-1].show();
    }
}
Добавлено через 52 секунды
не могу изменить данные. Выбираю номер мед карты у 2 пациента, но в конце он не меняет
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2021, 01:40
Ответы с готовыми решениями:

Считать данные из БД могу, но не могу изменить...
не могу измети какие-то данные в БД... считать данные могу.. потому неправильная строка подключения думаю исключается... оно мне выводит...

Изменить цвет в Edit при вводе определенного символа
Здравствуйте, прошу помощи! Изучаю си++ и сейчас хочу сделать сделать приложение. В поле Edit1 нужно вводить только одну цифру - 0 или 1....

Изменить сообщение при вводе в БД некорректной даты на своё
Когда я в своей БД пытаюсь добавить неправильную дату (типа 21.17.1990), то он выдаёт сообщение (см. скрин). Как мне выдать своё сообщение,...

1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
27.04.2021, 10:27
А Вы при вводе учитываете что операции типа
Цитата Сообщение от barakyd Посмотреть сообщение
C++
1
2
cout << "Задайте новый адрес: ";
 cin >> new_life;
Позволяют вводить только одно слово.
Т.е., если напечатать несколько слов, то введется только первое из них, а остальные пойдут на следующую операцию ввода.

p.s. использование в конструкторе операций ввода недопустимо.
Концепция ООП предполагает разработку структуры объекта отдельно от операций ввода-вывода.
Их надо реализовать в отдельных функциях в соответствии с типом и платформой.
(например, windows приложения и консольные приложения имеют совершенно разный ввод-вывод).
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
Patient()
    {
        name[0]=0;
        sname[0]=0;
        hname[0]=0;
        life[0]=0;
        medc=0;
        dig[0]=0;
        patient=0;
    }
    void ConsoleInput()
    {
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
 
        cout << "Введите имя  пациента: " << endl; 
        cin.getline(name,30);                          // почему это поле не в private разделе?
        cout << "Введите фамилию пациента: " << endl; 
        cin.getline(sname,30);                         // почему это поле не в private разделе?
        cout << "Введите отчество пациента: " << endl; 
        cin.getline(hname,20);                        // почему это поле не в private разделе?
        cout << "Введите адрес пациента: " << endl; 
        getline(cin,life);      //  какого .... все поля в char массивах, а это вдруг имеет тип string??????????
        cout << "Введите номер мед. карты пациента: " << endl; 
        cin >> medc;
        cin.get();                           // не забываем удалять \n в конце строки !!!!!!
        cout << "Введите диагноз пициента: " << endl; 
        cin.getline(dig,30);                             // почему это поле не в private разделе?
        //cout << "=======================================" << endl;
        system("cls");
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    cin >> a;
    cin.get();     // не забываем удалять \n в конце строки !!!!!!
    //error();
    switch (a)
    {
    case 1:
    {
        cout << "Задайте новый адрес: ";
        getline(cin,new_life);
        patient.life=new_life; //  !!!!!!!!!!!!!!!!!!!!!!!!!!
        system("cls");
        break;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2021, 10:27
Помогаю со студенческими работами здесь

Данные не попадают в переменные при вводе
Не хочу создавать новую тему, раз зашла речь об адресации. У меня на днях возник такой вопрос- напрмер такой кусок кода: .model tiny ...

Брать данные из таблицы БД при вводе в textbox
Можно ли как-то сделать, чтобы при начале ввода данных в textbox появлялись данные, которые находятся в выбранной нами таблице базы данных?...

Повторно запросить данные при их неверном вводе
Здравствуйте.Хочу узнать с помощью какого оператора или цикла можно сделать так,чтобы программа спрашивала ещё один раз пользователя,если...

Не могу изменить данные заполнения
Привет. подскажите вот на рисунке есть такое поле , куда берется информация. Но я не могу понять откуда именно она берется. где можно...

Не могу изменить данные в Table!
Доброго времени суток, возникла проблема, не могу отредактировать запись в таблице базы данных, автоинкрементное поле идет как первичный...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru