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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти названия игрушек, которые не превышают заданной стоимости и подходят для детей данного возраста http://www.cyberforum.ru/cpp-beginners/thread1067276.html
Дан файл F, содержащий сведения об игрушках: название игрушки, стоимость в рублях, возрастные границы детей, для которых игрушка предназначена. Найти названия игрушек, которые не превышают заданной...
C++ Используя указатель рассортировать массив строк в алфавитном порядке Доброй ночи, ребят! необходимо используя указатель рассортировать массив строк в алфавитном порядке. что-то делать пыталась, но получилось не совсем верно, через вектор и без указателей..помогите... http://www.cyberforum.ru/cpp-beginners/thread1067260.html
C++ Создать текстовый файл, содержащий информацию о человеке - ФИО, год рождения, вывести на экран сведения об однофамильцах, содержащихся в файле
Помогите, пожалуйста с задачкой. Создать текстовый файл, содержащий информацию о человеке- фио, год рождения, вывести на экран свеления об однофамильцах содержащикся в файле. Дополнительных массивов...
C++ Работа с текстовыми файлами
Доброй ночи. Будте добры, помогите сделать задачу с файлами. Теоретически понимаю что нужно делать, а программно реализовать не могу( вот задание: Имеются два текстовых файла. В первом файле...
C++ Вывести на экран символы первого файла с позиций, указываемых числами из второго файла http://www.cyberforum.ru/cpp-beginners/thread1067245.html
Доброй ночи. Будте добры, помогите сделать задачу с файлами. Теоретически понимаю что нужно делать, а программно реализовать не могу( вот задание: Имеются два текстовых файла. В первом файле...
C++ Создать класс. Символьное поле должно быть задано как объект класса string решите задачку!) 6. Создать класс. Символьное поле должно быть задано как объект класса string. Написать конструктор по умолчанию, конструктор копий и перегрузить операцию присваивания. Проверить... подробнее

Показать сообщение отдельно
InferernumDeus
7 / 7 / 1
Регистрация: 13.08.2012
Сообщений: 250

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

10.01.2014, 08:35. Просмотров 428. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru