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

При считывании из файла не выводится отчество - C++

Восстановить пароль Регистрация
 
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
20.12.2013, 13:37     При считывании из файла не выводится отчество #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
char str[42],buf[]="", *point;
 
 
    while(!feof(file)){
        //char *name,*sec_name,surname[]="";
        fscanf(file,"%s\n",buf);
 
        point = strchr(buf,';');
 
        strncpy(s.surname,buf, point-buf);
        s.surname[point-buf]=0;
        cout<<s.surname;
 
        strncpy(s.name,point,point-buf);
        s.name[point-buf]=0;
        cout <<' '<<s.name[1]<<'.';
 
        point = strchr(buf,';');
        strncpy(s.sec_name,point,point-buf);
        s.sec_name[12]=0;
        cout <<' '<<s.sec_name<<'.';
 
        cout<<'\n';
    }
Содержимое файла:

Анаша;Наталья;Евгенивна;1;Ж
Лизун;Паша;Вальеревич;2;М
Глубокий;Артем;Игоревич;3;М

Спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
20.12.2013, 13:41     При считывании из файла не выводится отчество #2
А вы уверены, что вам нужно работать с кириллицей?
Тогда все должно в юникоде быть. И функции wprintf, объекты wcout, ...
Если есть возможность - сделайте сначала задание с латиницей.
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
20.12.2013, 13:45  [ТС]     При считывании из файла не выводится отчество #3
Кириллицу выводит корректно. Не выводит отчество.
Arigato
Программист
 Аватар для Arigato
278 / 175 / 94
Регистрация: 05.12.2013
Сообщений: 568
Записей в блоге: 5
20.12.2013, 14:01     При считывании из файла не выводится отчество #4
Непонятные манипуляции. Что такое s?

Добавлено через 8 минут
Если я правильно понял идею решения, то можно применить что-то такое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    char buf[]="Анаша;Наталья;Евгенивна;1;Ж", *point, *str;
    
    str=&buf[0];
    point = strchr(str,';');
    str[point-str]=0;
    cout<<str<<" ";
    
    str=&str[point-str+1];
    point = strchr(str,';');
    str[point-str]=0;
    cout<<str[0]<<". ";
 
    str=&str[point-str+1];
    point = strchr(str,';');
    str[point-str]=0;
    cout<<str[0]<<". ";
Yandex
Объявления
20.12.2013, 14:01     При считывании из файла не выводится отчество
Ответ Создать тему
Опции темы

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