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

Работа с файлами. Редактирование файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан текстовый файл F. Найти, сколько раз встречается в нем слово S http://www.cyberforum.ru/cpp-beginners/thread17254.html
Просто без выходная ситуация надо решить задачи... Просто умоляю кто нибудь ПАМАГИТЕ!!!!!!!!!!!!:help::help::help: 1)Дан файл F, содержащий сведения о кубиках: размер (длина его ребра), его цвет и материал. Найти количество кубиков данного цвета и их суммарный объем. 2)Дан текстовый файл F. Найти , сколько раз встречается в нем слово S. 3)Дана строка символов. Группы символов, разделенные...
C++ Программирование массива указателей Подскажите, в чем различие выделения памяти для массива указателей char **term;: term = (char **)malloc(10); и *term = (char *)malloc(10); И как правильно удалить память для второго случая, если он вообще верен? http://www.cyberforum.ru/cpp-beginners/thread17248.html
C++ Вопрос от нуба)
std::cout << "Hello World!\n"; return 0; } я поробывал ее написать в Борланде 6 (так как диск с книгой не удолось запустить) чето нечего не вышло( патом поставил Вижуал студию 6 там узнал что они пишется так #include <iostream.h> void main() { cout << "Hello World!\n"; } вот вопрос вов сех книгах пишут пачти одно и тоже и те же примеры вот тока непонятно в каком они компиляторе их...
Как выйти?, если условие не выполняется C++
Я хотел сделать уравнение, всё пашет, но опять не получается с выходом после "RESHENIY NET". Например ввожу х=-1 и мне ввыводит сообщение "RESHENIY NET" и выдаёт ошибку т.к. он продолжает идти дальше:rtfm:. ПОМОГИТЕ ВЫЙТИ ПОСЛЕ "RESHENIY NET". Буду благодарен:) #include<stdio.h> #include<conio.h> #include<math.h> main() { int X,Y,A,B,C,D,E,F,G,H,K,L,M,N,Z; printf("VVEDITE X\n\r");...
C++ Работа с файлами: fseek(), ftell(), etc... http://www.cyberforum.ru/cpp-beginners/thread17235.html
Разбираю работу с файлами (прошу не пинать за убогость исходника), и наткнулся на одну загвоздку: программа компилируется без ошибок, но при запуске вылетает с ошибкой: "Инструкция по адресу "0x7c43e41d" обратилась по адресу "0x78131742". Память не может быть "written". Причём вылетает это только если вызывать функцию gfsize(), если её вызов закомментировать - всё работает. #include...
C++ Написать функцию, которая переворачивает число Помогите, пожалуйста с задачкой! Задачка: Дано натуральное число n и натуральные числа а1, а2... аn (n < 100). Переделать все данные числа так, чтобы цифры были записаны в обратном порядке (например, на месте 234 - 432, 100 - 1 итд.) В решении использовать функцию, которая данному числу возвращает обратное число, расчеты вести численные! Т.е. надо написать функцию, которая переворачивает... подробнее

Показать сообщение отдельно
Skai
Сообщений: n/a
04.12.2008, 16:59     Работа с файлами. Редактирование файла
Спасибо большое!! Разобрался.
но вот появилась ещё проблемка..
Суть задачи в следующем:

Дан файл, содержащий : фамилия число месяц и год рождения. Найти всех у кого будет день рождения в данном месяцу года и указать их возраст. Реализовать на двоич файлах.
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <locale.h>
#pragma pack(1)
struct block{
    char name[21];
    char god[5];
    char mes[10];
    char day[3];
};
#pragma pack(1)
FILE *f;
char ss[21];
void open(void);
void menu(void);
void add(void);
void view(void);
void f3(void);
int main(){
    setlocale(LC_ALL,"Russian");
    printf ("Задание 66_6. Дан файл F, содержащий номера телефонов сотрудников учреждения:\nфамилия сотрудника, его инициалы и номер телефона.\n"
            "Найти телефон сотрудника по фамилии и инициалам.\n");
    printf ("------------------------------\n");
    open();
    menu();
    while(true){
        printf("\rВыберите пункт меню: ");
        char c;
        c=_getche();
        switch(c){
            case '1': add(); menu(); break;
            case '2': view(); menu(); break;
            case '3': f3(); menu(); break;
            case '4': fclose(f); exit(0);
        }
    }
}
//=============================================
void menu(void){
    printf("\n1. Добавление записи\n"
    "2. Просмотр базы\n"
    "3. Поиск сотрудников по дате рождения\n"
    "4. Выход\n\n");
}
void open(void){
    f=fopen("people.dat","rb+");
    if (f==NULL){
        printf("Не могу открыть "people.dat".\n");
        _getch();
        exit(-1);
    }
}
void add(void){
    int n;
    printf("\n\nДобавление\nВыход - 0\n\n");
    block a;
    while(true){
        printf("Фамилия : ");
        n = scanf_s("%20[^\n]s", a.name, 21);
        fflush(stdin);
        if (n!=1) a.name[0]='\0';
        if(a.name[0]=='0'||a.name[0]==0) break;
 
        printf("Год рождения : ");
        n = scanf_s("%11[^\n]s", a.god, 5);
        fflush(stdin);
        if (n!=1) a.god[0]='\0';
        if(a.god[0]=='0'||a.god[0]==0) break;
 
        printf("Месяц : ");
        n = scanf_s("%20[^\n]s", a.mes, 10);
        fflush(stdin);
        if (n!=1) a.mes[0]='\0';
        if(a.mes[0]=='0'||a.mes[0]==0) break;
 
        printf("День : ");
        n = scanf_s("%20[^\n]s", a.day, 3);
        fflush(stdin);
        if (n!=1) a.day[0]='\0';
        if(a.day[0]=='0'||a.day[0]==0) break;
 
        fwrite(&a,sizeof(block),1,f);
    }
}
void view(void){
    fseek(f,0,SEEK_SET);
    printf("\n\nПросмотр базы...\n\n\tИмя: \t\tГод: Месяц:   День:\n");
    setlocale (LC_ALL,".866");
    block a;
    while(true){
        if(fread(&a,sizeof(block),1,f)<1) break;
        printf("\t%s\t%s %s %s\n",a.name,a.god,a.mes,a.day);
    }
    setlocale (LC_ALL,".1251");
}
void f3(void){
    int n;
    int result;
    int cmpr;
    result=0;
    printf("\n\nВведите дату рождения сотрудника(в формате: год месяц):\n");
    n = scanf_s("%20[^\n]s", ss, 21);
    fflush(stdin);
    if (n!=1) ss[0]='\0';
    fseek(f,0,SEEK_SET);
    printf("\n\nПоиск...\n");
    block a;
    while(true){
        /*Вот как тут реализовать поиск? */
        }
    }
    setlocale (LC_ALL,".1251");
    if (result==0) printf("\nПо Вашему запросу ничего не найдено.\n");
}
Заранее надеюсь и благодарю за помощь!
 
Текущее время: 14:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru