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

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

Войти
Регистрация
Восстановить пароль
 
InferernumDeus
7 / 7 / 1
Регистрация: 13.08.2012
Сообщений: 250
#1

При сокращении "Фамилия Имя Отчество" к "Фамилия И.О." пропадают "И.О." - C++

10.01.2014, 08:35. Просмотров 411. Ответов 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
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <fstream>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
//////////////////////////////////////////////////////////////////////////////////////
 
T_str  get_initials(T_str s)
{
    struct  T_to_init
    {
        int  n_;
        T_to_init() : n_() {}
        T_str  operator()(const T_str&  word)
        {           
            return n_ > 2 ? "" : n_++ ? word.substr(0, 1) + '.' : word;            
        }
    };
    std::istringstream            ssin(s);  
    std::istream_iterator<T_str>  ssin_beg(ssin);
    std::istream_iterator<T_str>  ssin_end;
 
    std::ostringstream            sout;
    std::ostream_iterator<T_str>  sout_beg(sout, " ");
 
    std::transform(ssin_beg, ssin_end, sout_beg, T_to_init());
    return  sout.str();
}
 
void process(std::ifstream &instr)
{
 
}
 
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::string line;
    std::ifstream backstory ("fio.txt");
    std::ofstream out ("out.txt");
    if (backstory.is_open())
    {
        /*while (std::getline(backstory, line))
        {
            //std::getline(backstory,line);
            //std::cout << line << std::endl;
            process(line);
            //std::cout << line << std::endl;
        }
        backstory.close();*/
        T_str  s;
        for(;;)
        {
            //std::cout << std::endl
            //          << "FIO: ";
            (std::getline(backstory, s));
            //getline(std::cin << instr, s);
            if(s.empty()) break;
            out << get_initials(s);
            out << std::endl;
    }  
    }
    else
    {
        std::cout << "Unable to open file" << std::endl << std::endl;
    }
    
    std::string str;
    getline(std::cin, str);
}


Добавлено через 16 минут
Поправка.
Вместо букв "И" и "О" на выход всегда поступает символ �. В Notepad++ он отображается как "xD0"
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 08:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При сокращении "Фамилия Имя Отчество" к "Фамилия И.О." пропадают "И.О." (C++):

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес" - C++
Здравствуйте. Проходим тему Структуры, не могу понять, как определить количество, само задание: #include &lt;iostream&gt; #include...

Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация") - C++
Вывести из структуры информацию о человеке, чья фамилия введена с клавиатуры #include &lt;iostream&gt; #include &lt;locale&gt; #include...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию - C++
в массиве структур студент с полями &quot;ИМЯ&quot; &quot;ВОЗРАСТ&quot; &quot;УСПЕВАЕМОСТЬ&quot; выполнить сортировку по успеваемости по возрастанию. Использовать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 09:26 #2
В файле что?
0
InferernumDeus
7 / 7 / 1
Регистрация: 13.08.2012
Сообщений: 250
10.01.2014, 10:16  [ТС] #3
Набор строк типа:
Иванов Иван Иванович
Сергеев Пётр Борисович
И так далее.
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.01.2014, 10:36 #4
У меня (10-я студия) нормально записывает в файл.

Добавлено через 4 минуты
ОС и среда какая?
1
InferernumDeus
7 / 7 / 1
Регистрация: 13.08.2012
Сообщений: 250
10.01.2014, 11:24  [ТС] #5
Теперь разобрался.
Проблема в том, что файл был в UTF-8, а не ANSI.
С ANSI работает нормально.
Благодарю.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 11:24
Привет! Вот еще темы с ответами:

Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и количество гласных в нем. Удалить все буквы "а" и "о" в фамилии. - C++
Помогите пожалуйста. Очень нужно сделать программу. Ввести имя фамилию и отчество как одно данное типа строка. Определить длину строки и...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...


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

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

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