Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2023, 04:32   #1
bonbon7776
Новичок
Джуниор
 
Регистрация: 20.01.2023
Сообщений: 1
По умолчанию Некорректно работает программа (C++)

Код:
#include <iostream>
#include <fstream>
#include <locale>
using namespace std;

int main() {
    setlocale(LC_ALL, "Russian");
    int course;
    char division;
    string group;
    cout << "ВВедите курс (ex. 1, 2, 3): ";
    cin >> course;
    cout << "Введите отделение  (о - очное, з - заочное): ";
    cin >> division;

    string filePath = "C:\\Users\\User\\Desktop\\groups.txt";
    ifstream file(filePath);
    if (!file) {
        cout << "Error opening file" << endl;
        return 1;
    }
    while (file >> group) {
        if (group[group.size() - 2] == course + '0' && group[group.size() - 1] == division) {
            cout << group << endl;
        }
    }
    file.close();
    return 0;
}
ПРОГРАММА НА C++
Программа должна работать так вы вводите через консоль курс и отделение (очное/заочное), а она из текстового файла все в ту же консоль выведет все группы, относящиеся к этому курсу и отделению.
Но когда я ввожу курс и отделение она просто ничего не выводит хотя ошибок не выдает.
К вопросу прикрепил файл groups.txt
Вложения
Тип файла: txt groups.txt (103 байт, 8 просмотров)

Последний раз редактировалось bonbon7776; 20.01.2023 в 04:45.
bonbon7776 вне форума Ответить с цитированием
Старый 21.01.2023, 22:51   #2
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

bonbon7776, у вас файл groups.txt в кодировке UTF-8, а .cpp файл скорее всего в кодировке code page 1251 (которую во «взрослых» программах использовать не надо). Вот способ проверить наверняка:
Код:
const char* ya = "я";
if ((static_cast<unsigned char>(ya[0]) == 209) && (static_cast<unsigned char>(ya[1]) == 143) && (ya[2] == '\0')) {
  cout << ".cpp file in encoding UTF-8." << endl;
} else if ((static_cast<unsigned char>(ya[0]) == 255) && (ya[1] == '\0')) {
  cout << ".cpp file in encoding code page 1251." << endl;
} else {
  cout << ".cpp file in unknown encoding." << endl;
}
Для учебного задания скорее всего предполагается, что везде используется одна и та же кодировка, так проще код писать.
Цитата:
Сообщение от файл groups.txt
Код:
1АПб-01-1оп-22
1АПм-03-1оп-21
1АПм-03-21оп
1АПм-04-1оп-22
1АПпб-00-1зп-18
Буквы «о» и «з» я вижу, а где здесь курс?
Пётр Седов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректно работает программа.С++Builder spectrum988 Помощь студентам 1 17.04.2014 12:17
Программа не корректно работает на других компьютерах Elloriane Общие вопросы C/C++ 6 22.05.2013 08:06
Не корректно работает программа,посмотрите yurok25 Общие вопросы C/C++ 2 14.05.2012 20:12
Не совсем корректно работает программа alexchromets Помощь студентам 2 26.12.2010 19:45
Программа работает не корректно Neymexa Общие вопросы C/C++ 5 24.12.2008 19:17