1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
1

Как записать кириллицу в файл и вывести кириллицу из файла?

14.05.2021, 10:29. Показов 4212. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Удивительное дело, но долго искал информацию о том, как записать кириллицу в DAT файл и вывести кириллицу из DAT-файла.
Не нашел...
Кругом пишут о выводе из .txt файла. Но это я умею. Причем на VS-2019 даже кодировку файла менять не приходится, достаточно в программе прописать setlocale.
Люди знающие, подскажите пожалуйста, есть ли вообще возможность выводить из DAT- файла кириллицу?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2021, 10:29
Ответы с готовыми решениями:

Как прочитать кириллицу из файла и вывести её?
Доброе утро. Подскажите, плиз, как решить проблему с читабельностью Кириллицы. Текстовая строка...

Как записать в бд кириллицу
Всем привет! У меня такая проблема, необходимо в бд записать данные в кириллице. Я insertom...

Как прочитать кириллицу из файла?
И как сделать красивую таблицу, чтобы шрифт не такой огромный был? using System; using...

Как считать кириллицу из файла?
Добрый вечер. Подскажите, пожалуйста, что нужно сделать в этой функции, чтобы вывести с файла...

29
Заблокирован
14.05.2021, 10:33 2
Чо за .dat и чем он отличается от .txt, кроме расширения?
0
-373 / 93 / 26
Регистрация: 08.05.2021
Сообщений: 373
14.05.2021, 10:33 3
Цитата Сообщение от KAMLS Посмотреть сообщение
есть ли вообще возможность выводить из DAT- файла кириллицу?
Так попробуй так же, как и с txt. Если не пройдёт - значит идёшь смотреть формат этого DAT и где именно там текст лежит.
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
14.05.2021, 10:36  [ТС] 4
Цитата Сообщение от mashmed135 Посмотреть сообщение
Так попробуй так же, как и с txt.
DAT-файл - это бинарный файл. Он может сохранять в том числе объекты класса, не только текст. Если вы не знаете что такое DAT-файл, вы не сможете мне помочь.
0
Заблокирован
14.05.2021, 10:37 5
Цитата Сообщение от KAMLS Посмотреть сообщение
DAT-файл - это бинарный файл. Он может сохранять в том числе объекты класса, не только текст.
Да неужели? А ну покаж его сюды.
Цитата Сообщение от KAMLS Посмотреть сообщение
Если вы не знаете что такое DAT-файл, вы не сможете мне помочь.
Баба с возу — кобыле легче.
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
14.05.2021, 10:46 6
KAMLS, если по теме:
Объекты класса "в лоб" все равно сохранить не удастся. Надо будет сохранять поштучно.
А чтобы работать с файлом, как с бинарным, надо открывать его не как текстовый, а как бинарный.
И вся любовь...

Добавлено через 1 минуту
Ну и читать/писать не строки, а записи определенной длины
0
-373 / 93 / 26
Регистрация: 08.05.2021
Сообщений: 373
14.05.2021, 10:50 7
Цитата Сообщение от KAMLS Посмотреть сообщение
DAT-файл - это бинарный файл
Во первых, ты явно не знаешь, что значит бинарный. Во вторых, ты не знаешь, что там у тебя за DAT файл и что он хранит. В третьих, достаёшь нужные данные и переводишь их в "кириллицу".
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
14.05.2021, 11:00  [ТС] 8
Цитата Сообщение от liv Посмотреть сообщение
Надо будет сохранять поштучно.
Я и сохраняю-то всего одын штук)
И открывается он в консоли тут же.
Вот код.
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
// diskfun.cpp
// Чтение из файла и запись нескольких объектов
#include <fstream>      // для файловых потоков
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
class person            // класс person
  {
  protected:
    char name[80];      // имя человека
    int age;            // его возраст
  public:
    void getData()      // получить данные о человеке
      {
      cout << "\n  Введите имя: "; cin >> name;
      cout << "  Введите возраст: "; cin >> age;
      }
    void showData()     // вывод данных о человеке
      {
      cout << "\n  Имя: " << name;
      cout << "\n  Возраст: " << age;
      }
  };
///////////////////////////////////////////////////////////
int main()
  {
  setlocale(LC_ALL,"RUS");
  //тут еще много разных "русификаторов" использовал, не помогает
  char ch;
  person pers;          // создать объект person
  fstream file;         // создать входной/выходной файл
                        // открыть для дозаписи
  file.open("GROUP.DAT", ios::app | ios::out |
                      ios::in | ios::binary );
  do                    // данные от пользователя – в файл
    {
    cout << "\nВведите данные о человеке:";
    pers.getData();     // получить данные
                        // записать их в файл
    file.write( reinterpret_cast<char*>(&pers), sizeof(pers) );
    cout << "Продолжить ввод (y/n)? ";
    cin >> ch;
    }
  while(ch=='y');       // выход по 'n'
  file.seekg(0);        // поставить указатель на начало файла
                        // считать данные о первом человеке
  file.read( reinterpret_cast<char*>(&pers), sizeof(pers) );
  while( !file.eof() )  // Выход по EOF
    {
    cout << "\nПерсона:"; //вывести данные
    pers.showData();      //считать данные о следующем
    file.read(reinterpret_cast<char*>(&pers),sizeof(pers));  
    }
  cout << endl;
  return 0;
  }
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
14.05.2021, 11:12 9
Лучший ответ Сообщение было отмечено KAMLS как решение

Решение

KAMLS, для того, чтобы вводилась кириллица, сделайте:
C++
1
system("chcp 1251 > nul");
И в конце надо бы файл закрывать:
C++
1
file.close();
0
Заблокирован
14.05.2021, 11:12 10
Как записать кириллицу в файл и вывести кириллицу из файла?
0
liv
14.05.2021, 11:14
  #11

Не по теме:

Verevkin, я тоже в тесте задавал возраст 12 :D

0
Заблокирован
14.05.2021, 11:17 12
Цитата Сообщение от liv Посмотреть сообщение
я тоже в тесте задавал возраст 12
Ну дык йопть!
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
14.05.2021, 11:19  [ТС] 13
Цитата Сообщение от KAMLS Посмотреть сообщение
А вот теги используйте С++,
Буду использовать)

Добавлено через 1 минуту
Цитата Сообщение от liv Посмотреть сообщение
system("chcp 1251 > nul");
Эту строку где размещать?
0
Заблокирован
14.05.2021, 11:21 14
Цитата Сообщение от KAMLS Посмотреть сообщение
Эту строку где размещать?
Вместо setlocale().
Цитата Сообщение от KAMLS Посмотреть сообщение
Вы знаете как решить задачу по "русификации" ввода, то бишь извлечения? Может дело во вставке? Я уже думал, как применить "русификацию" прямо при записи в файл. У кириллицы ведь если я не ошибаюсь количество байтов больше на кодировку символа?
Это не так работает. Забей.
1
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
14.05.2021, 11:23  [ТС] 15
Цитата Сообщение от Verevkin Посмотреть сообщение
Вместо setlocale().
Спасибо.
0
-373 / 93 / 26
Регистрация: 08.05.2021
Сообщений: 373
14.05.2021, 11:25 16
Цитата Сообщение от liv Посмотреть сообщение
И в конце надо бы файл закрывать:
Зачем, если оно само закроется?
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
14.05.2021, 11:25  [ТС] 17
Спасибо люди добрые.
0
Заблокирован
14.05.2021, 11:31 18
Цитата Сообщение от mashmed135 Посмотреть сообщение
Зачем, если оно само закроется?
Так надо!
KAMLS,
Как записать кириллицу в файл и вывести кириллицу из файла?
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
14.05.2021, 11:36 19
Цитата Сообщение от mashmed135 Посмотреть сообщение
Зачем, если оно само закроется?
Так то оно так... Но это аналогично требованию освобождению полученной динамической памяти. Тоже по выходу из программы освобождается...
Надо делать хотя бы для того, чтобы в следующий раз, когда это будет важно, не забыть.
Чтобы в мозгу сидело: открыл, следом надо закрыть. Запросил память - освободи...

Добавлено через 1 минуту
Кстати, еще и не факт, что все компиляторы закроют незакрытый файл... Особенно это важно после записи
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 88
14.05.2021, 11:37  [ТС] 20
Цитата Сообщение от Verevkin Посмотреть сообщение
KAMLS
Это какое-то специальное приложение для открытия DAT-файлов? Я в VS-2019 открывал. Там уже три объекта насохранялось) Два на латинице имени видно, а последний объект с кириллицей не видно.
0
14.05.2021, 11:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2021, 11:37
Помогаю со студенческими работами здесь

Как вывести кириллицу в QLineEdit в Qt 5.2?
Как вывести кириллицу в QLineEdit в Qt 5.2?

Как вывести кириллицу в консоли
void first() { char ch; gets(ch); puts(ch); } int main() { first();

Как прочитать кириллицу с .dbf файла?
Присоединил к mdb-файлу таблицу dbf, из чужой программы таблица, нужна мне для обработки в моей...

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

Прочитать кириллицу из файла
Привет. Мне нужно прочитать данные из обычного txt-файла. Числа и латинские символы читаются...

Читать кириллицу из файла
Доброго времени суток, мне нужно считать из файла текст с украинским и русским языками, но читается...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru