Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для Carpe
0 / 0 / 1
Регистрация: 22.12.2009
Сообщений: 45

Две ошибки. только исправить.

24.01.2010, 12:31. Показов 876. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выдает две ошибки:
1) 1>.\fg.cpp(110) : error C2360: initialization of 'year2' is skipped by 'case' label
1> .\fg.cpp(86) : see declaration of 'year2'

2) 1>.\fg.cpp(110) : error C2360: initialization of 'year1' is skipped by 'case' label
1> .\fg.cpp(86) : see declaration of 'year1'

Разобраться сама не могу. Помогите.
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
#define _CRT_SECURE_NO_DEPRECATE
 
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string.h>
 
 
struct knigi{
    char book[50];      // название книги
    char name[20];      // фамилия
    int year;           // год издания
};
 
FILE *f;
 
void menu(void) {
    printf(
        "\n"
        "1. Добавить.\n"
        "2. Просмотреть.\n"
        "3. Найти.\n"
        "9. Выйти.\n\n"
    );
}
 
int main() {
 
     setlocale(LC_ALL,"Russian");
 
    // открытие файла на запись
    FILE *f;
    f = fopen( "database.txt", "ab+" );
    if( f == NULL ) {
        printf( "Не удалось создать или перезаписать 'database.txt'. Нажмите клавишу...\n" );
        _getch();
        return -1;
    }
    menu();
 
    char c;
while(true) {
        printf( "\rВыберите режим работы: " );
        c = _getche();
        knigi t;
        switch (c) {
            case '1': // Добавление ----------------------------------
                printf( "\n\nПополнение базы 'database.txt'.\n"
                        "Для выхода в главное меню введите 0 вместо названия книги или фамилии автора.\n\n" );
                fseek( f, 0, SEEK_END );
 
    // работа с файлом
        while( true )  {
        printf( "Название книги: " );
        scanf_s( "%49s%*[^\n]5000s", t.book, 50 );
        if( t.book[0]=='0' ) break;
        printf( "Фамилия автора: " );
        scanf_s( "%19s%*[^\n]5000s", t.name, 20 );
        if( t.name[0]=='0' ) break;
        printf( "Год издания: " );
        scanf_s("%d", &t.year);
        fwrite( &t, sizeof(t), 1, f );
    printf( "Информация добавлена.\n\n" );
                }
        
        menu();
                break;
            case '2': // Просмотр ------------------------------------
                printf(
                    "\n\nСодержимое базы 'database.txt'\n\n" 
                    "\tНазвание книги:\tФамилия автора:\tГод издания:\n" );
                fseek( f, 0, SEEK_SET );
                setlocale( LC_ALL, ".866" );
                while( true ) {
    if( fread( &t, sizeof(knigi), 1, f ) !=1 ) break;
        printf( "\t%-15s\t%s\t\t%d\n", t.book, t.name, t.year );
                }
 
 
            setlocale( LC_ALL, ".1251" );
                menu();
                break;
            case '3': // Поиск ---------------------------------------
                printf( "\n\nПоиск по базе 'database.txt'\n\n" );
char s[50];
int year1=1990, year2=1999;
                printf( "Введите название, год начада и год конца: " );
                scanf_s( "%s %d %d",&t.book,&year1,&year2 );
            printf( "\n\n\tНазвание книги:      \tФамилия автора:      \tГод издания:\n" );
                fseek( f, 0, SEEK_SET );
        setlocale( LC_ALL, ".866" );
                while( true )  {
           if (feof(f)) break;
             fread(&f, sizeof(knigi), 1, f);
               if (t.year>year1 && t.year<year2)
                 {
                    for (int lt=0; lt<strlen(t.book); lt++)
                      {
                        if (t.book[lt]!=t.book[lt]) break;
                        if (lt==strlen(t.book)-1) 
                         {
                            printf("\n%s %s %d",t.book,t.name,t.year);
                         } 
                 } 
          }
                }
setlocale( LC_ALL, ".1251" );
                menu();
                break;
            case '9': // Выход ---------------------------------------
                fclose(f);
                return 0;
        }
}
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2010, 12:31
Ответы с готовыми решениями:

Не могу исправить две маленькие ошибки
Первая ошибка В классе A создал объект класса B, выдает ошибку компиляции: //A.h #include &quot;B.h&quot; class A{ ...

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

7
 Аватар для Mr.Loner
42 / 42 / 10
Регистрация: 23.01.2010
Сообщений: 151
24.01.2010, 12:38
определяй переменные до switch

Добавлено через 47 секунд
C++
1
int year1=1990, year2=1999;
1
 Аватар для Carpe
0 / 0 / 1
Регистрация: 22.12.2009
Сообщений: 45
24.01.2010, 12:42  [ТС]
Переставила, но она не ищет. Вводишь данные для поиска, но поиск не производится.
0
 Аватар для Sekt
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
24.01.2010, 13:17
Я поиск по файлам исп через
C
1
fseek(f,sizeof(knigi)*(pos-1),SEEK_SET));
где pos-позиция для поиска.И не стоит объявлять переменных.
1
 Аватар для Carpe
0 / 0 / 1
Регистрация: 22.12.2009
Сообщений: 45
24.01.2010, 13:22  [ТС]
Цитата Сообщение от Sekt Посмотреть сообщение
где pos-позиция для поиска.И не стоит объявлять переменных.
какие переменные объявлять не стоит?

Добавлено через 55 секунд
Цитата Сообщение от Sekt Посмотреть сообщение
(pos-1)
ругается, что метка не определена
0
 Аватар для Sekt
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
24.01.2010, 13:25
int year и т.д Вы просто вводите позицию в файле с клавиатуры и потом след строчкой читайте её.
C
1
2
3
4
5
fseek(f,sizeof(knigi)*(pos-1),SEEK_SET);
if(sizeof(knigi)!=fread(...));
puts("end of file");
else
.....
0
 Аватар для Carpe
0 / 0 / 1
Регистрация: 22.12.2009
Сообщений: 45
24.01.2010, 13:29  [ТС]
Sekt, не поняла... можно без троеточий прописать?
0
 Аватар для Sekt
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
24.01.2010, 16:54
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fseek(f,0,SEEK_END);
        int a=0;// номер коррекктировки/
        int records=ftell(f)/sizeof(item);
        while(true)
        {
            puts("Vvedite Poziciu korrektirovki");
            scanf("%d",&a);
            if(a<0||a>records)break;
            fseek(f,sizeof(item)*(a-1),SEEK_SET);
            if(sizeof(item)!=fread(&it1,1,sizeof(item),f))
                puts("Konec faila");
            else
                it[n]=it1;
            printf("Detal:%sKol-vo:%sNomer ceha:%s\n",it[n].name,it[n].value,it[n].number);
            puts("Vvedite korrektirovki Nomera ceha\n");
            scanf("%d",&it[n].number);
            puts("Dannie posle korrektirovki\n");
            printf("%s%s%d\n",it[n].name,it[n].value,it[n].number);
}
It1-локальная переменная структуры .
тут даже корректировка сделайте под ваш вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2010, 16:54
Помогаю со студенческими работами здесь

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Сформировать две строки - первая содержит только числа из исходной строки, а вторая – только слова
1.Дан текст, состоящий из предложений. Ввод текста осуществляется в несколько строк (не более 20). Признак завершения ввода – ввод пустой...

Исправить ошибки
Прошу поправить ошибки и проверить правильность! #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; ...

Исправить ошибки
Откомпелируйте и исправьте ошибки в следующих программах: 1 программа: #include&lt;iostream&gt; using namespace std; int main()...

Исправить ошибки
Вывести через String. Спасибо заранее. #include &quot;stdafx.h&quot; using namespace System; void main(void) { System::String^St =...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru