Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Программа на структуры - C++

12.12.2010, 16:30. Просмотров 397. Ответов 6
Метки нет (Все метки)

Написать программу обработки файла типа запись, содержащую следующие пункты меню:
- Создание,
- Просмотр,
- Коррекция – добавление новых данных или исправление старых.

Для моего варианта данные следующие:
Информация об участниках соревнований содержит:
- Ф.И.О. игрока;
- игровой номер;
- возраст;
- рост;
- вес.

Программу написал но есть загвоздка. В файл выводится какая-то не та кодировка. Номер, возраст, рост и вес выводятся не целыми числами, а разными символами. Причем если данные вводить в формате %s а не %d, то все работает. Но мне нужно ввести именно целые числа а не строку символов, т к далее буду с ними работать. Подскажите , как это сделать?

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
  struct Sved {
        char Fam[14];
        int GameNumber, Age, Height, Weight;
        } zap;
  char Spis[]="f:\\University\\Sp.dat";
  FILE *F_zap;
int main ()
{ int i,kodR,size=sizeof(Sved);
  float s;
  while(1)   {
    puts("  Creating    -   1");
    puts("  Viewing -   2");
    puts("  Adding  -   3");
    puts("  Exit            -   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("Vvedite: Family (Zaver6enie vvoda - 0)");
         scanf("%s", zap.Fam);
         if((zap.Fam[0])=='0') break;
         puts("Vvedite: GameNumber, Age, Height, Weight");
         scanf("%d %d %d %d", &zap.GameNumber, &zap.Age, &zap.Height, &zap.Weight);
         // Вот здесь в предыдущей строке если данные вводить как строка символов,
         // а не десятичное целое (%s вместото %d), то выводит все как надо.
         // Но мне нужны именно числовые данные, т.к в дальнейшем буду далее с ними
         // оперировать 
         fwrite(&zap.Fam, 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 %2d %2d %2d\n",  
   zap.Fam,zap.GameNumber,zap.Age,zap.Height,zap.Weight);
             }
        fclose(F_zap);
     break;
     case 0:   return 0;    
 
}       //Switch  
     }  //While(1)  
}
.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 16:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программа на структуры (C++):

Динамические структуры данных. Программа ввода в структуры и вывода информации из неё. - C++
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для...

Программа на структуры - C++
Помогите написать программу со структурами, выдает куча ошибок..=( : &quot;Ввести в комп. информацию про сотрудников отдела: Фамилия, Имя,...

программа развлетленной структуры - C++
Пользователь вводит четыре числа. Найти сумму положительных среди них чисел. #include &lt;stdio.h&gt; ...

простая программа на структуры с++ - C++
Помогите, пожалуйста, написать программу на структуры С++, не могу разобраться..думаю, все не так сложно, как мне кажется месяц=(Jan,...

Программа разветвленной структуры - C++
даны четыре числа. Вычислить сумму положительных среди них чисел

Программа С++ по циклам (циклические структуры) - C++
Мне нужен исходник вот такой программы, если не сложно напишите :) Найти наименьший номер последовательности, для которого...

6
Mencey
149 / 96 / 7
Регистрация: 22.07.2010
Сообщений: 426
12.12.2010, 18:53 #2
Если файл будет нужен для просмотра, то
сохраняйте всё как строки, а потом опять можете всё считать и перевести строки в число.
В противном случае
сохраняйте числом.
0
zydrate
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 11
12.12.2010, 19:21  [ТС] #3
Цитата Сообщение от Mencey Посмотреть сообщение
Если файл будет нужен для просмотра, то
сохраняйте всё как строки, а потом опять можете всё считать и перевести строки в число.
В противном случае
сохраняйте числом.
Так в том то и дело, что если сохранить в файл числом, то сбивается кодировка и получаются почему-то их ASCII коды, а не сами числа. Вот это мне надо исправить.
0
Mencey
149 / 96 / 7
Регистрация: 22.07.2010
Сообщений: 426
12.12.2010, 21:36 #4
Цитата Сообщение от zydrate Посмотреть сообщение
если сохранить в файл числом, то сбивается кодировка
Т.е. вы хотите чтобы в файле число было как строка(т.е. в файле было например "675")?
0
zydrate
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 11
13.12.2010, 00:15  [ТС] #5
Да, в файле должно быть записано число.
К примеру строка такая: Здесь_Любая_фамилия 5 27 68 175
Я мог бы вывести это как строку а не числа. Но мне потом надо будет сортировать эту базу и снова выводить в файл. Вывести информацию о самой молодом, рослом и легком участнике соревнований. А я так понимаю, это можно будет сделать только с числовыми данными. Или я не прав?

Добавлено через 1 час 56 минут
0
Mencey
149 / 96 / 7
Регистрация: 22.07.2010
Сообщений: 426
14.12.2010, 19:59 #6
Строки можно и в числа перевести.
1
zydrate
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 11
18.12.2010, 18:54  [ТС] #7
Цитата Сообщение от Mencey Посмотреть сообщение
Строки можно и в числа перевести.
Спасибо, с переводом уже разобрался.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2010, 18:54
Привет! Вот еще темы с ответами:

С++ Нужна программа модульной структуры - C++
Пожалуйста помогите,нужна программа модульной структуры,приблизительно на страницу,(т.е. объемная) на языке С++.Заранее огромное спасибо. ...

Вылетает программа (Структуры и функции) - C++
Здравствуйте! Пишу программу и столкнулся с такой проблемой. Когда я писал ее на ноутбуке, то у меня стала вылетать программа после того,...

Почему не работает программа? Структуры - C++
Признаю, что я нуб, но, пожалуйста, помогите найти ошибку :( Программа считывает значения, но не выводит результат. Даны массивы...

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...


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

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

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