Как можно изменить код?

314
05 октября 2017, 13:37

Задание:Структура с именем TRAIN поля: -название пункта назначения; -номер поезда; -время отправления Способ обработки – вывод на дисплей результата сравнения: верно ли ,что названия пунктов назначения совпадают у двух поездов Как можно изменить код?

#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct TRAIN {
    char *name;
    int number;
    float time;
};
void inTrain(TRAIN *train) {
    cout <<"Введите данные: "<<endl;
    cout <<"Пункт назначения: "<<endl;
    train->name = new char[25];
    cin  >>train->name;
    cout <<"Номер поезда: "; cin >>train->number;
    cout <<"Время отправлени: "; cin >>train->time;
}
void outTrain(TRAIN *train) {
    cout <<"Пункт назначения: "<<train->name<<endl<<"Номер поезда: "<<train->number<<endl<<"Время отправления: "<<train->time<<endl;
}
int main() {
    TRAIN tr1,tr2,*train1, *train2;
    train1 = &tr1;
    train2 = &tr2;
    int num;
    while (1) {
        cout << "Выберите действие: " <<endl<< "1 - Ввод данный" <<endl<< "2 - Вывод данных" <<endl<< "3 - Обработка" <<endl<< "4 - Выход" << endl; 
        cin >> num;
        switch(num) {
            case 1: inTrain(train1);
                    inTrain(train2);
                    break;
            case 2: outTrain(train1);
                    outTrain(train2);
                    break;
            case 3: if (tr1.name == tr2.name) cout <<"True"<<endl;
                    else cout<<"False"<<endl;
                break;
            case 4: return 0;
            }
        }
        return 0;
    }
Answer 1
tr1.name == tr2.name

Ну не сравнивают так строки... Вы проверяете, не один ли и тот же адрес у name в tr1 и tr2...

if (strcmp(tr1.name,tr2.name) == 0) { ... }

Вот это - сравнение строк, а не адресов.

Answer 2
  1. Или сравнивать так

    case 3: if (strcmp(tr1.name,tr2.name)==0)
  2. или, что лучше, заменить тип на string.

READ ALSO
Нужно убрать первый символ строки

Нужно убрать первый символ строки

Есть программа, которая в цикле сравнивает строки, всё в ней работает, но в итоге превышается тайм лимит на 0,001 - 0,007 секундыРешил с каждой итерацией...

246
Как сделать таймер на C++

Как сделать таймер на C++

Делаю игру змейку, изучая ООП C++, и есть код:

295
Считывание unicode

Считывание unicode

Имеется адрес в котором хранится строка в UTF-16Вопрос как ее нормально считать в массив char с помощью ReadProcessMemory? Я пытался вот так:

243
Ошибки со структурой С++

Ошибки со структурой С++

Здравствуйте, у меня есть бинарный файл где находятся int значения, каждый из которых занимает 4 байтаЯ хочу с помощью данной структуры пройти...

242