Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 3
Регистрация: 15.03.2014
Сообщений: 134

Сформировать файл “stud”. Напечатать список студентов мужского пола с указанием их возраста. Проблема с кодировкой

29.03.2014, 22:52. Показов 1448. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Помогите исправить, доработать пограмму.

Проблема в том что в файл записивает только первое слово фамилию, а дальше карлюки (смотрите вложения), надо это исправить!

Задача
Сформировать файл “stud”, имеющий следующую структуру: фамилия студента, пол(буква), год рождения. Напечатать список студентов мужского пола с указанием их возраста.

Решение:

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
#include <stdio.h>
#include <string.h>
#define N 1
struct swed
{
    char    fio[31];
    char    pl;
    int     god;
};
int main()
{
    struct swed    d[N];
    FILE *         f;
    int            i, t, k;
    if((f = fopen("D:\\f.txt", "wb")) != NULL)
    {
        for(i = 0; i < N; i++)
        {
            printf("prizv: ");
            gets(d[i].fio);
            printf("pol   : ");
            d[i].pl = getchar();
            printf("god r.: ");
            scanf("%d", &d[i].god);
            puts("");
            fflush(stdin);
 
 
        }
 
{
fwrite(d, sizeof(swed), N, f);
 
 
        fclose(f);
}
    }
    if((f = fopen("D:\\f.txt", "rb")) != NULL)
    {
      fread(d, sizeof(swed), N, f);
 
 
 
        t = k = 0;
        for(i = 0; i < N; i++)
        {
            if(d[i].pl == 'm')
            {
                printf("%s\t( %d )\n", d[i].fio, 2014 - d[i].god);
                t += 2014 - d[i].god;
                k++;
            }
        }
        if(k > 0)
            printf("\Seredniy vik = %g\n", (float)t / k);
        fclose(f);
    }
    return 0;
}
Миниатюры
Сформировать файл “stud”. Напечатать список студентов мужского пола с указанием их возраста. Проблема с кодировкой  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2014, 22:52
Ответы с готовыми решениями:

Напечатать список студентов мужского пола с указанием их возраста
помогите найти пожалуйста ошибку на типизированый файл. Условие: Сформировать файл “stud”, имеющий следующую структуру: фамилия студента,...

Напечатать список студентов мужского пола с указанием их возраста
здраствуйте. не получается с ответом задачи. вроде компилируется но не вычисляется. не могли бы вы исправить ошибку* буду благодарен. ...

Составить список студентов (мужского пола) заданного года рождения
Задан список группы студентов ( фамилия, год рождения, пол). Составить список студентов( мужского пола ) заданного года рождения. Помогите!...

5
1 / 1 / 3
Регистрация: 15.03.2014
Сообщений: 134
30.03.2014, 15:38  [ТС]
Помогите!
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
30.03.2014, 18:53
А что ты хочешь? Ты же в двоичном формате записываешь данные.
0
1 / 1 / 3
Регистрация: 15.03.2014
Сообщений: 134
31.03.2014, 12:53  [ТС]
Цитата Сообщение от korvin_ Посмотреть сообщение
А что ты хочешь? Ты же в двоичном формате записываешь данные.
Как исправить?

Добавлено через 16 часов 25 минут
Так что сделать, чтобы исправить?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
31.03.2014, 13:49
Цитата Сообщение от agent008 Посмотреть сообщение
Так что сделать, чтобы исправить?
Записывать данные в текстовом виде.
0
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
31.03.2014, 14:30
Лучший ответ Сообщение было отмечено agent008 как решение

Решение

Файловые потоки берем разными указателями.

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
#include <stdio.h>
#include <string.h>
#define N 2
 
struct swed
{
    char    fio[31];
    char    pl;
    int     god;
};
 
 
int main()
{   struct swed    d[N];
    FILE          *fin, *fout;
    int            i, t, k;
    if((fin = fopen("D:\\f.txt", "wb")) != NULL)
    {
        for(i = 0; i < N; i++)
        {
            printf("prizv: ");
            gets(d[i].fio);
            printf("pol   : ");
            d[i].pl = getchar();
            printf("god r.: ");
            scanf("%d", &d[i].god);
            puts("");
            fflush(stdin);
         }
 
        fwrite(d, sizeof(swed), N, fin);
        fclose(fin);
 
    }
    
    if((fout = fopen("D:\\f.txt", "rb")) != NULL)
    {
        fread(d, sizeof(swed), N, fout);
        t = k = 0;
        for(i = 0; i < N; i++)
        {   if(d[i].pl == 'm')
            {   printf("%s\t( %d )\n", d[i].fio, 2014 - d[i].god);
                t += 2014 - d[i].god;
                k++;
            }
        }
        
        if(k > 0)
            printf("Seredniy vik = %lf\n", (double)t / k);
        fclose(fout);
    }
 
    getchar();
    return 0;
}
Изображения
 
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2014, 14:30
Помогаю со студенческими работами здесь

Записи. Получить: список студентов мужского пола,проживающих в общежитие и процент сдавших экзамены без троек
Запись:Ф.И.О,место проживания(дома,в общежитие,на квартире),пол,баллы на экзаменах(4 экзамена). Результат обработки:список студентов...

Вывести на экран студентов мужского пола старше 18 лет
Сделать небольшую программу, нужно ввести информацию о нескольких студентах 3-5 человек, и среди них вывести студентов мужского пола старше...

Вывести фамилии, имена и отчества всех студентов мужского пола, старших 18 лет
вывести фамилии, имена и отчества всех студентов мужского пола, старших 18 лет. Должна вводиться информация о студентах(фамилии,...

Структуры: определить фамилию самого высокого юноши и средний рост студентов мужского пола
Здравствуйте!уважаемые программисты! помогите мне пожалуйста решить задачу:( имеется список студентов группы, в котором указаны фамилия...

Вывести фамилии, имена и отчества всех студентов мужского пола, не сдавших более двух экзаменов
вывести фамилии, имена и отчества всех студентов мужского пола , не сдавших более двх экзаменов


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru