4 / 4 / 1
Регистрация: 28.10.2012
Сообщений: 54
1

Выведите информацию о городах, где количество жителей больше пятидесяти тысяч

25.01.2014, 15:02. Показов 672. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, не могу понять как правильно написать программу которая работает с файлами. Вот мой пример программы:
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
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <iostream> 
 
using namespace std;
 
struct Sved
{
char name[20];
int kol;
int cen;
}zap;
 
char Spis[] = "d:\\accounts.txt";
FILE *F_zap;
 
void main ()
{
    setlocale(LC_ALL, "Russian");
int i, kodR, size  = sizeof(Sved);
float s;
//  clrscr();
while(1)
    {
        puts(" Создание - 1");
        puts(" Просмотр - 2");
        puts(" Добавление - 3");
        puts(" Задание - 4");
        puts(" Выход - 0");
        scanf("%d", &kodR);
        switch(kodR)
        {
        case 1:
        case 3:
        if(kodR == 1)
        F_zap = fopen(Spis, "w+b");
        else
        F_zap = fopen(Spis, "a+b");
        while(2)
        {
        puts(" Название города (Завершение ввода - 0)");
        scanf("%s", zap.name);
        if ((zap.name[0])=='0') break;
        puts("Население");
        scanf("%d",&zap.kol);
        puts("Площадь занимаемой территории");
        scanf("%d",&zap.cen);
        fwrite(&zap, size, 1, F_zap);
            }
        fclose(F_zap);
        break;
        case 2:
        F_zap=fopen(Spis,"r+b");
        while(2)
        {
        if(!fread(&zap, size, 1, F_zap)) break;
        printf("%20s %2d %d\n",
        zap.name,
        zap.kol,
        zap.cen);
        }
        fclose(F_zap);
        break;
        case 4:
        F_zap=fopen(Spis,"r+b");
        while(2)        { if(!fread(&zap, size, 1, F_zap)) break; 
        if ((zap.cen)>50000) 
        {
        printf("%20s %2d %d\n",
        zap.name,
        zap.kol,
        zap.cen);
        }}
            cout<<"\n";
        fclose(F_zap);
        break;
        case 0:
        return;
        }
}
}
Пытаюсь сделать такую штуку:
Информация о городах Европы содержит:
• название города;
• количество жителей;
• площадь занимаемой территории.
Выведите информацию о городах, где количество жителей больше пятидесяти тысяч.
Ошибку выдает на "scanf("%d", &kodR);"
Ошибка 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 36
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2014, 15:02
Ответы с готовыми решениями:

Вывести данные о городах, количество жителей которых меньше 5 млн. чел
Создать динамический массив структур и вывести данные о городах, количество жителей которых меньше...

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

Чему равно общее число жителей в двух городах A и B
Средний возраст жителей города A равен 32 года, а средний возраст жителей города B – 45 лет. Одна...

Выведите информацию о дисках, емкостью больше 200 Гб
Жесткий диск определяется названием и емкостью. Внешние жесткие диски определяются дополнительно...

4
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.01.2014, 15:09 2
DvogR, вижуал студия? Можно отключить. Решение есть здесь: Как отключить _CRT_SECURE_NO_WARNINGS?
0
4 / 4 / 1
Регистрация: 28.10.2012
Сообщений: 54
25.01.2014, 15:20  [ТС] 3
Цитата Сообщение от BumerangSP Посмотреть сообщение
DvogR, вижуал студия? Можно отключить. Решение есть здесь: Как отключить _CRT_SECURE_NO_WARNINGS?
Спасибо, помогло, но теперь уже в самой программе проблемы)

Добавлено через 59 секунд
не работает 4 пункт, выводит все, подскажите, что исправить?
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.01.2014, 17:34 4
Думаю, дело в режиме, в котором Вы открываете файл. Сам плохо знаком с Сишными файлами. У Вас открывается и пишется в двоичный файл. Притом в некоторых scanf отсутствует &.

Притом в 4 пункте данные читаются и записываются в тот же файл?
0
4 / 4 / 1
Регистрация: 28.10.2012
Сообщений: 54
25.01.2014, 17:47  [ТС] 5
Цитата Сообщение от BumerangSP Посмотреть сообщение
Думаю, дело в режиме, в котором Вы открываете файл. Сам плохо знаком с Сишными файлами. У Вас открывается и пишется в двоичный файл. Притом в некоторых scanf отсутствует &.

Притом в 4 пункте данные читаются и записываются в тот же файл?
даа
0
25.01.2014, 17:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2014, 17:47
Помогаю со студенческими работами здесь

Найдите в базе всех жителей, живущих в разных городах по одинаковому адресу.
Есть база данных по жителям красноярского края, содержащая город, улицу, номер дома и квартиры....

Напечатать фамилии двух (любых) жителей из списка S, живущих в разных городах по одинаковому адресу
Доброе время суток у меня трабл с прогой :wall: вот задание type stroka=packed array of...

Известно число жителей в каждом доме улицы. На какой стороне улицы проживает больше жителей
4. Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома...

Узнать, где построить почту так, чтобы расстояние и количество жителей были оптимальными
Люди, такая запара...нагрузили по информатике такой вот ерундой: Есть селение, оно расположено...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru