Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
 Аватар для Sirenka
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 6

Сформировать типизированный файл

19.01.2013, 17:55. Показов 3645. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сформировать типизированный файл, в котором хранится информация о сотрудниках подразделения: ФИО, место рождения, год рождения. На его основе сформировать файл сотрудников, родившихся в данном городе и распечатать его.


С использованием структур и без использования потоков.

Помогитеееее...

Вот примерное начало...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#define n 5
int main ()
FILE *fi;
if ((fi=fopen("d:\\c\\file.txt", "a+"))==0) {
cout (("Error"; return 1; }
const int d1=100;
char s [d1];
struct {
char fio [20];
char mr [20];
int gr; }
m[n];
for(i=0; i<n; i++)
 Комментарий модератора 
Правила форума п. 5.5: Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.


Добавлено через 21 минуту
Ребят, помогите!

Добавлено через 33 минуты
HELp!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2013, 17:55
Ответы с готовыми решениями:

как в с++ создается типизированный файл? и как вообще понять типизированный?
вопрос в теме

не типизированный файл
Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой в них символа 0 на 1 и наоборот. также решить в терминах...

Типизированный файл
С чего начать и что почитать?

15
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
19.01.2013, 18:09
Use XML
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
19.01.2013, 18:16
да какое ХМЛ?? Человек не способен Hello World написать, если посмотришь на его код! Без обид, но советовать ХМЛ - не к месту.
0
 Аватар для Sirenka
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 6
19.01.2013, 18:19  [ТС]
Эм, мне нужно только её немного доработать, да может кое-что не соображаю, форум насколько я знаю, называется : "Для начинающих".
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
19.01.2013, 18:29
Цитата Сообщение от Sirenka Посмотреть сообщение
Эм, мне нужно только её немного доработать, да может кое-что не соображаю, форум насколько я знаю, называется : "Для начинающих".
Если писал не сам - пиши с нуля и разбирайся сам. Судя по программе ты даже Hello world не способен написать. Изучать Си также не начинал. Что даст тебе готовая программа??? Мир потеряет ещё одного потенциального программиста, потому что один нерадивый ученик решил скатать работу, не вникая.

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
#include <stdio.h>
#define n 5
#define d1 100
struct record{
  char fio [20];
  char mr [20];
  int gr; 
}m[n];
int main (){
  FILE *fo;
  char s[d1];
  int i;
  if (!(fo=fopen("d:\\file.dat", "wb"))){
     printf ("Error!");
     return 1;
  }
  
  printf("input 5 records:\n");
  for (i=0; i<5; i++){
      fflush(stdin); puts("Input name:");       gets(m[i].fio);
      fflush(stdin); puts("Input mr:");         gets(m[i].mr);
      puts("Input gr(number):"); scanf("%d", &(m[i].gr));
  }
  fwrite (m,  sizeof(struct record) , n,  fo);
  fclose(fo);
  return 0;
}
1
 Аватар для Sirenka
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 6
19.01.2013, 18:37  [ТС]
Уже писалА, но оказалось не правильно.

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>        //подключение библиотек
struct price
{
    char name[50];
    int year;
    char place[30];
    struct price * pc;
};
void main()
{
    int n;
    struct price *rex;
    struct price *beg = NULL;
    struct price *end = NULL;
        printf("Vvedite znacheniya:\n");
        do
        {
            rex = (struct price *) malloc(sizeof(price));
            printf("Name: ");
            scanf("%s",&rex->name);
            printf("Mesto rojdeniya: ");
            scanf("%s",&rex->place);
            printf("Year: ");
            scanf("%d",&rex->year);
            if(rex->year == 0)
            {
                free(rex);
                break;
            }
            if(beg == NULL && end == NULL)      // список пуст
                beg = rex;
            else
                end->pc = rex;
            end = rex;
            end->pc = NULL;
        }
        while(1);                                                  // конец ввода
    rex = beg;
    FILE* fp1 = fopen("list.txt","w");
    while(rex != NULL)
    {
        printf("Name: %s, Mesto: %s, Year: %d\n",rex->name, rex->place, rex->year);
    fprintf(fp1,"Name: %s ; Mesto: %s ; Years: %d\n",rex->name, rex->place, rex->year);
        rex = rex->pc;
    }
    fclose(fp1);
    printf("Saved to file 'list.txt'");
getch();
}
Поэтому началА писать по-другому...

Добавлено через 4 минуты
Спасибо... у меня вопросик, почему режим открытия wb? Преподаватель советовала a+....
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
19.01.2013, 18:45
Пишеш в байтовом виде.A+ это когда ты дописываеш в конец.

Не по теме:

По всем вопросам-в скайп

1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
19.01.2013, 18:45
a+ дозаписывает в уже существующий файл, в принципе его можно использовать вместо w
Но так как в задании ты требуешь создать бинарный файл, то приходится открывать файл как "a+b" либо как "w+b"
0
 Аватар для Sirenka
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 6
19.01.2013, 18:51  [ТС]
Спасибо.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
19.01.2013, 19:01
Ах да, и тут есть ещё один момент. Меня смутил заголовок "типизированные файлы" и я стал приводить пример, как записывать в БИНАРНЫЙ файл.
Типизированных же файлов в Си нет! Если не ошибаюсь, это кажется термин из Паскаля. Так что задание неверное.
0
 Аватар для Sirenka
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 6
19.01.2013, 19:09  [ТС]
Всё может быть, но задание было такое...Именно типизированный файл...

А программа с использованием потоков?

Добавлено через 6 минут
И почему-то, настаивает делать через процедуры выводы/ввода: fprintf, fscanf
0
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
19.01.2013, 19:30
Э-хэ-хэ, выложили 2 варианта кода, кардинально отличающихся друг от друга. Это намекает кое на что.

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
#include <stdio.h>
#include <string.h>
 
#define MAX_N 5
 
int main ()
{
    FILE *fi = fopen("d:\\c\\file.txt", "a+" );
 
    if ( fi == 0 ) { puts( "Error" ); return 1; }
 
    struct
    {
        char fio [20];
        char mr [20];
        int gr;
    } m[ MAX_N ], t;
    int n = 0;
    char place[ 20 ];
 
// читаем данные из stdin
    puts( "Enter employees data" );
    while ( !feof( stdin ) && n < MAX_N )
    {
        scanf( "%s %s %d", m[ n ].fio, m[ n ].mr, &( m[ n ].gr ) );
        ++n;
    }
// записываем их в file.txt
    for ( int i = 0; i < n; ++i )
        fprintf( fi, "%s %s %d ", m[ i ].fio, m[ i ].mr, m[ i ].gr );
 
    FILE *fi2 = fopen( "d:\\c\\file2.txt", "w" );
 
    if ( fi2 == 0 ) { puts( "Another Error" ); return 1; }
 
// просим ввести место
    printf( "enter mr: " ); scanf( "%s", place );
 
// честно вычитываем данные из только что созданного файла и если они удовлетворяют условию, то записываем их в файл file2.txt
    fseek( fi, 0, SEEK_SET );
    for ( int i = 0; i < n; ++i )
    {
        fscanf( fi, "%s %s %d", t.fio, t.mr, &( t.gr ) );
        if ( strcmp( place, t.mr ) == 0 )
            fprintf( fi2, "%s %s %d\n", t.fio, t.mr, t.gr );
    }
 
    return 0;
}
Не знаю как тут с типизированностью, но если препод просит через fprintf, и fscanf, то должно быть правильно.

Да, и не забывайте перед очередным запуском программы удалять файл file.txt.
2
 Аватар для Sirenka
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 6
19.01.2013, 19:41  [ТС]
Спасибо
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
19.01.2013, 19:44
чтобы не удалять файл каждый раз, используй ключ w.
1
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
19.01.2013, 19:47
Цитата Сообщение от Invader_Zim Посмотреть сообщение
чтобы не удалять файл каждый раз, используй ключ w.
неа, потом файл еще и для чтения используется. так что тут только a+. А '+' потому, что в режиме а не работает fseek
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
19.01.2013, 19:49
В код не сильно вникаю.
Но если надо гупнуть файл, то в конце std::remove(filename)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2013, 19:49
Помогаю со студенческими работами здесь

Сформировать типизированный файл
Сформировать типизированный файл целых чисел, вводимых с клавиатуры. Признаком конца ввода является 0. Найти сумму чисел из файла и...

Сформировать типизированный файл действительных чисел
Сформировать типизированный файл действительных чисел. На последнее месть поставить минимальное значение среди значений, содержащихся в...

Сформировать типизированный файл, содержащий сведения о марках автомобилей
Сформировать типизированный файл, содержащий сведения о марках автомобилей с указанием их максимальной скорости, количестве пассажиров,...

Сформировать типизированный файл и выбрать из него элементы по заданному критерию
Заданные поля записи, определить их типы данных, написать программу для ввода произвольного количества записей, записать их в...

Сформировать типизированный файл по формуле, найти произведение чисел, кратных 2 и 10
Помогите решить задачу, пожалуйста. Типизированные файлы. А) Формировать М1(из 10 компонент) первая половина по формуле 3i, вторая по...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru