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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Salabim
0 / 0 / 1
Регистрация: 27.09.2011
Сообщений: 75
#1

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

04.05.2014, 21:02. Просмотров 453. Ответов 4
Метки нет (Все метки)

Добрый день!
При написании простого консольного приложения, целью которого является вывод заданных данных в текстовый файл, столкнулся с следующей проблемой: программа "съедает" первые три символа и выводит их через табуляцию в файл, к тому же не читается кириллица.
Пожалуйста, помогите в решении проблемы.

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;
}
Заранее благодарю за ответ!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2014, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файловый ввод-вывод: выводятся не все символы, не читается кириллица (C++):

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод - C++
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Найти минимальный элемент в списке и удалить все элементы равные минимальному (файловый ввод/вывод) - C++
Каждую задачу данного раздела решить, реализовав список в виде линейно связанной структуры: стека, очереди и списка общего вида. Исходный...

Перенести все цифры в конец каждой строки с сохранением взаимного исходного порядка (файловый ввод/вывод) - C++
Содержимое текстового файла INPUT.TXT, разделенного на строки, переписать за один проход по файлу в текстовый файл OUTPUT.TXT, перенося при...

Поменять консольный ввод-вывод на файловый ввод-вывод - C++
вот у меня калькулятор как мне сделать что б числа вводились из файла и результат записывался в новый файл ? // ОБРАТНАЯ...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур - C++
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран? Само задание: О каждой книге ...

Файловый ввод/вывод. Во всех словах строки переставить все входящие буквы «а» в начало слова, а буквы «я» – в конец - C++
Здравствуйте! Помогите, пожалуйста, составить программу, которая считывает из текстового файла input.txt строку символов S.Во всех словах...

4
cooller
565 / 533 / 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>
1
Salabim
0 / 0 / 1
Регистрация: 27.09.2011
Сообщений: 75
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;
}
В результате этого русский "умирает" вовсе...
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.05.2014, 21:43 #4
Цитата Сообщение от Salabim Посмотреть сообщение
В результате этого русский "умирает" вовсе...
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
1
Salabim
0 / 0 / 1
Регистрация: 27.09.2011
Сообщений: 75
05.05.2014, 13:36  [ТС] #5
Премного благодарен! По данной теме вопросов больше нет! Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2014, 13:36
Привет! Вот еще темы с ответами:

Ввод / вывод. Кириллица. - C++
Помогите плиз! Эта программа выводит строки в которых есть слово) Программа работает только с латинским алфавитом! Как переделать на...

ввод, вывод, кириллица - C++
Если подобная тема поднималась(скорее всего да) то дайте ссылку , т.к. я ответа на свой вопрос не нашел. Среда MSVS 2005. Чтобы...

Реализовать вывод массива объектов типа Student на консоль (файловый ввод/вывод) - C++
Как сделать чтобы список студентов выводился на экран в конце? #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...

Ввод вывод в файл и консоль.(Кириллица) - C++
int main() { setlocale(LC_ALL, &quot;rus&quot;); ifstream a(&quot;qwe.txt&quot;); string x, y; getline(cin, x); //1- ввод из консоли в (x) ...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
05.05.2014, 13:36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru