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

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

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

Структуры и файлы - C++

11.01.2014, 05:39. Просмотров 295. Ответов 2
Метки нет (Все метки)

Доброй ночи! В общем задание: написать программу (валшепную), которая описывает структуру, содержащую:
-имя,
-знак зодиака,
-дата рождения (со вложенной структурой, состоящей из: день, месяц, год).
Основные действия: ввод и вывод (поиск по имени или знаку), упорядоченная запись элементов структуры (как дополнение).
Ну, начнем с проблемы: при вводе с консоли, запись со 2-ого раза скачет через запрос, на ввод имени (запрос на ввод имени, знака, даты рождения(в длину по 2 2 4 символа), дальше программа просто не хочет работать, сразу завершается. Прикрепляю код, который хоть не ругается на ошибки.
Кликните здесь для просмотра всего текста

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
using namespace std;
struct date {
    int day[2], month[2], year[4];
};
 
 
struct znak {
    char name[10];
    char zodiak[10];
    struct date birthday;
}person;
FILE *human; znak *p; 
const int n = 4;
void key();
int main() 
{
    key();
    errno_t err;
    err = fopen_s(&human, "znak.txt.", "w+");
    if (err == 0){
        printf("The file 'znak' was opened\n");
    }
    else{
        printf("The file 'znak' was not opened\n");
    }
    for (int i = 1; i < n; i++)
    {
        printf("Person: %i", i); printf_s("\nEnter the his/her name : ");
        gets(person.name);
        printf("\nEnter the his sign of the zodiac : ");
        gets(person.zodiak);
        printf("\nHis date of birth : ");
        scanf("2%d 2%d 2%d", &p->birthday.day, &p->birthday.month, &p->birthday.year);
        fwrite(&person, sizeof(znak), 1, human);
    }
    int schet = 0;
    char poisk[40], ko[60];
    printf_s("Want to find a person by his name or sign of the zodiac? [n/z]");
    scanf_s("%c", &ko);
    if (ko[0] == 'n')
    {
        printf("Enter the name : ");
        scanf("%c", &poisk);
        for (int i = 1; i < 4; i++){
            if (!(fscanf(human, "%s", p[i].name))){
                printf("/nName - ", p[i].name);
                schet++;
            }
            if (schet == 0)
                printf("/nNot found/n");}
    }
    else if (ko[0] == 'z')  {
        printf("Enter the zodiac : ");
        scanf("%c", &poisk);
        for (int i = 1; i < 4; i++){
            if (!(fscanf_s(human, "%s", p[i].zodiak))){
                printf("/nZodiac - ", p[i].zodiak);
                schet++;
            }
            else
            if (schet == 0)
                printf("Not found\n");}
    }
    else{
        printf("");}
    system("pause");
    return 0;
}
 
void key(){         //авторизация
    int i = 0;
    string valid_pass = "123";
    string user_pass;
    printf_s("\nEnter a password: ");
    getline(cin, user_pass);
    if (user_pass == valid_pass) {
        printf("OK\n");
        return;
    }
    else {
        printf("Invalid password\n");
    }
    return key();
}
Миниатюры
Структуры и файлы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 05:39     Структуры и файлы
Посмотрите здесь:

Структуры и файлы - C++
Помогите почему-то не происходит очистка файла при записи новых данных. #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; ...

Структуры и Файлы - C++
Решите пожалуйста задачки: Структуры: Дан набор из N квадратных уравнений, заданных своими коэффициентами a,b,c. Вычислить количество...

Файлы и структуры - C++
Народ помогите, плиззз!!! В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит следующую...

Структуры и файлы - C++
Ребята, спасите!!! Используя структурный тип данных, создать базу данных и организовать с ней работу, включая поиск нужной...

Структуры и файлы - C++
Создать файл &lt;&lt;point&gt;&gt;, который содержит параметры для 12 точек в пространстве. Параметрами каждой точки являются: вещественные координаты...

Структуры и файлы - C++
Всем доброго времени суток, есть такая задача, дан файл, который содержит ФИО, курс, группа и результат забега, в новый файл нужно занести...

Структуры и файлы - C++
Помогу решить проблему. С записью в файл все нормально, но когда считываю с файла возникает ошибка &quot;Вызвано исключение по адресу...

Структуры, функции и файлы - C++
Для хранения данных о цветных планшетных сканерах описать структуру вида: struct scan_info{ char model; //наименование модели ...

файлы меню структуры - C++
Добрый день, возникла проблема с программой, суть ее заключается в том что пользователь вводит и записывает в файл информацию о сдаче...

Бинарные файлы и структуры - C++
Доброго времени суток. Прошу ответить на пару вопросов: 1) Почему результат операции sizeof, применённый к структуре, не совпадает с...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.01.2014, 08:15     Структуры и файлы #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
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
#include <fstream>
#include <string>
#include <iostream>
 
using namespace std;
 
struct date 
{
    int day, 
        month, 
        year;
};
 
 
struct znak 
{
    char name[10];
    char zodiak[10];
    struct date birthday;
} person;
 
FILE* human; znak* p; 
const int n = 4;
 
void key();
 
int main() 
{
    key();
    errno_t err;
    err = fopen_s(&human, "znak.txt.", "w+");
    if (err == 0)
    {
        printf("The file 'znak' was opened\n");
    }
    else
    {
        printf("The file 'znak' was not opened\n");
    }
    
    p = new znak[n];
    
    for (int i = 0; i < n; i++)
    {
        printf("Person: %i", i + 1); printf_s("\nEnter the his/her name : ");
        scanf("%s", person.name);
        printf("\nEnter the his sign of the zodiac : ");
        scanf("%s", person.zodiak);
        printf("\nHis date of birth : ");
        scanf("%d%d%d", &person.birthday.day, &person.birthday.month, &person.birthday.year);
        fwrite(&person, sizeof(znak), 1, human);
        p[i] = person;
    }
    
    int schet = 0;
    char poisk[40], ko[60];
    printf("Want to find a person by his name or sign of the zodiac? [n/z]");
    scanf("%s", ko);
    if (ko[0] == 'n')
    {
        printf("Enter the name : ");
        scanf("%s", poisk);
        for (int i = 0; i < n; i++)
        {
            if (strcmp(poisk, p[i].name) == 0)
            {
                printf("%s\n%s\n%d %d %d\n", p[i].name, p[i].zodiak, 
                        p[i].birthday.day, p[i].birthday.month, p[i].birthday.year);
                schet++;
            }
         }
         if (schet == 0)
                printf("/nNot found/n");
    }
    else if (ko[0] == 'z')  
    {
        printf("Enter the zodiac : ");
        scanf("%s", poisk);
        for (int i = 0; i < n; i++)
        {
            if (strcmp(poisk, p[i].zodiak) == 0)
            {
                printf("%s\n%s\n%d %d %d\n", p[i].name, p[i].zodiak, 
                        p[i].birthday.day, p[i].birthday.month, p[i].birthday.year);
                schet++;
            }
        }
        if (schet == 0)
                printf("Not found\n");
    }
    else
       printf("");
    
    delete [] p;
    
    system("pause");
    return 0;
}
 
void key(){         //авторизация
    int i = 0;
    string valid_pass = "123";
    string user_pass;
    printf_s("\nEnter a password: ");
    getline(cin, user_pass);
    if (user_pass == valid_pass) {
        printf("OK\n");
        return;
    }
    else {
        printf("Invalid password\n");
    }
    return key();
}
Cer9
0 / 0 / 0
Регистрация: 11.01.2014
Сообщений: 23
11.01.2014, 11:38  [ТС]     Структуры и файлы #3
Большое человеческое спасибо
Ответ Создать тему
Опции темы

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