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

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

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

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

20.12.2013, 13:37. Просмотров 264. Ответов 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
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;М

Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2013, 13:37     При считывании из файла не выводится отчество
Посмотрите здесь:

Проблема при считывании из файла - C++
Пишу простенькую программу по криптографии. В результате шифрования получается txt файлик с набором закорючек(он во вложении). Для...

Конец файла при потоковом считывании - C++
if (fin.eof()==0){ cout &lt;&lt; &quot;aaa&quot;; int asa; asa = (int)buf; fout.write((char*)buf, sizeof(buf - asa)); } вот...

Неверная кодировка при считывании из файла - C++
Проблема такая, при считывание из файла идет кракозябра, как это исправитьsetlocale(LC_ALL, &quot;rus&quot;); FILE *fp; if(!(fp =...

Разъясните ошибки при считывании файла - C++
не пойму что от меня требуется тут) пол года изучаем язык) часть ошибок исправил но при считывании с файла лепит нарушение прав доступа ...

Сбивается указатель при считывании из файла - C++
Сбивается указатель, считывается не то значение (вместо '1' считывается пробел и всё летит). Но если открыть этот файл в WordPad'e добавить...

Ошибка при считывании двоичного файла - C++
При считывании из .EXE файла возникает ошибка, а возникает она когда считываемый байт равен 0x1A. Если он есть в файле то программа &quot;видит&quot;...

Лишние биты при считывании файла - C++
Нужно порциями по 63 байта считать текст из файла. &quot;in&quot; - мой открытый файл для чтения. Вот отрывок из кода fseek(in, 0, SEEK_END); ...

Переполнение строки при считывании из файла - C++
Считываю я строки из файла, в котором их 500 тысяч. Если строка начинается на R, то я записываю её в другой файл. Примерно на 312000-й...

Ошибка, при считывании инфы с файла... - C++
Вот есть код:#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;fstream.h&gt; #include &lt;stdio.h&gt; #include...

При считывании файла знаки + и - некорректно отображаются - C++
Имеется код #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;fstream&gt; #include &lt;stack&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
6946 / 4117 / 581
Регистрация: 29.11.2010
Сообщений: 10,916
20.12.2013, 13:41     При считывании из файла не выводится отчество #2
А вы уверены, что вам нужно работать с кириллицей?
Тогда все должно в юникоде быть. И функции wprintf, объекты wcout, ...
Если есть возможность - сделайте сначала задание с латиницей.
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
20.12.2013, 13:45  [ТС]     При считывании из файла не выводится отчество #3
Кириллицу выводит корректно. Не выводит отчество.
Arigato
Программист
280 / 177 / 95
Регистрация: 05.12.2013
Сообщений: 667
Записей в блоге: 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     При считывании из файла не выводится отчество
Ответ Создать тему
Опции темы

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