Форум программистов, компьютерный форум CyberForum.ru

Файловый ввод-вывод: выводятся не все символы, не читается кириллица - C++

Восстановить пароль Регистрация
 
Salabim
0 / 0 / 1
Регистрация: 27.09.2011
Сообщений: 74
04.05.2014, 21:02     Файловый ввод-вывод: выводятся не все символы, не читается кириллица #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
#include "stdafx.h"
#include <iostream> 
#include <fstream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "RUS");
    char object, cost, owner;
cout << "Введите наименование объекта недвижимости" << endl;
cin >> object;
 
cout << "Введите цену объекта недвижимости" << endl;
cin >> cost;
 
cout << "Введите имя владельца объекта недвижимости" << endl;
cin >> owner;
 
    ofstream F ("OutF.txt", ios::out);
    F << object << '\t' << cost << '\t' << owner;
 
    return 0;
}
Заранее благодарю за ответ!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2014, 21:02     Файловый ввод-вывод: выводятся не все символы, не читается кириллица
Посмотрите здесь:

C++ Ввод / вывод. Кириллица.
ввод, вывод, кириллица C++
Файловый ввод/вывод: в строке поменять местами слова, разделенные союзом "и" C++
C++ Файловый ввод/вывод
C++ Файловый ввод/вывод
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
04.05.2014, 21:11     Файловый ввод-вывод: выводятся не все символы, не читается кириллица #2
Цитата Сообщение от Salabim Посмотреть сообщение
char object, cost, owner;
думаю в названии вы вводите символы больше чем один байт, ведь так? в таком случае нужно объявлять массивы

Добавлено через 3 минуты
Цитата Сообщение от Salabim Посмотреть сообщение
к тому же не читается кириллица.
вместо
C++
1
setlocale (LC_ALL, "RUS");
пиши это
C++
1
2
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
подключи <windows.h>
Salabim
0 / 0 / 1
Регистрация: 27.09.2011
Сообщений: 74
04.05.2014, 21:13  [ТС]     Файловый ввод-вывод: выводятся не все символы, не читается кириллица #3
Благодарю! Совсем вылетело из головы.

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
#include "stdafx.h"
#include <iostream> 
#include <fstream>
#include <windows.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
char object[100], cost[100], owner[100];
    
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
cout << "Введите наименование объекта недвижимости" << endl;
cin >> object;
 
cout << "Введите цену объекта недвижимости" << endl;
cin >> cost;
 
cout << "Введите имя владельца объекта недвижимости" << endl;
cin >> owner;
 
    ofstream F ("OutF.txt", ios::out);
    F << object << '\t' << cost << '\t' << owner;
 
    return 0;
}
В результате этого русский "умирает" вовсе...
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.05.2014, 21:43     Файловый ввод-вывод: выводятся не все символы, не читается кириллица #4
Цитата Сообщение от Salabim Посмотреть сообщение
В результате этого русский "умирает" вовсе...
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
Salabim
0 / 0 / 1
Регистрация: 27.09.2011
Сообщений: 74
05.05.2014, 13:36  [ТС]     Файловый ввод-вывод: выводятся не все символы, не читается кириллица #5
Премного благодарен! По данной теме вопросов больше нет! Спасибо!
Yandex
Объявления
05.05.2014, 13:36     Файловый ввод-вывод: выводятся не все символы, не читается кириллица
Ответ Создать тему
Опции темы

Текущее время: 03:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru