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

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

Восстановить пароль Регистрация
 
DvogR
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 30
25.01.2014, 15:02     Выведите информацию о городах, где количество жителей больше пятидесяти тысяч #1
Здравствуйте, не могу понять как правильно написать программу которая работает с файлами. Вот мой пример программы:
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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2014, 15:02     Выведите информацию о городах, где количество жителей больше пятидесяти тысяч
Посмотрите здесь:

Увеличить численность каждого города на 5% (количество жителей-всегда целое число). C++
вывести на экран товар, если цена за его единицу товара 10 тысяч и он лежит больше месяца C++
C++ Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка)
C++ сформируйте и выведите на экран массив из n элементов, где каждый элемент массива равен произведению двух предыдущих и его порядкового номера
C++ Найдите во введенной строке все подстроки вида «ХХ.ХХХ.Х», где Х – цифра, и выведите их на экран
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
25.01.2014, 15:09     Выведите информацию о городах, где количество жителей больше пятидесяти тысяч #2
DvogR, вижуал студия? Можно отключить. Решение есть здесь: Как отключить _CRT_SECURE_NO_WARNINGS?
DvogR
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 30
25.01.2014, 15:20  [ТС]     Выведите информацию о городах, где количество жителей больше пятидесяти тысяч #3
Цитата Сообщение от BumerangSP Посмотреть сообщение
DvogR, вижуал студия? Можно отключить. Решение есть здесь: Как отключить _CRT_SECURE_NO_WARNINGS?
Спасибо, помогло, но теперь уже в самой программе проблемы)

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

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

Притом в 4 пункте данные читаются и записываются в тот же файл?
даа
Yandex
Объявления
25.01.2014, 17:47     Выведите информацию о городах, где количество жителей больше пятидесяти тысяч
Ответ Создать тему
Опции темы

Текущее время: 16:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru