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

Не изменяет запись - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ <iostream> в каких случаях используется? http://www.cyberforum.ru/cpp-beginners/thread650394.html
Что такое <iostream> расскажите о нем, для чего он используется.
C++ начать отладку Здравствуйте! Скажите пожалуйста, почему в этом коде system("pause") не работает??? #include "stdafx.h" #include <stdio.h> #include <math.h> int main(void) { double result; double x =... http://www.cyberforum.ru/cpp-beginners/thread650385.html
В составе программы описать функцию C++
1.В составе программы описать функцию, которая формирует список М1 – копию списка М и список М2, представляющий собой ”перевернутый” список М. 2.Дана матрица 7х9 вещественного типа. Создать...
C++ Как реализовать таблицу?
Всем Доброго времени суток. Как сделать таблицу в с++ ? Заранее спасибо!)
C++ Возврат значения из функции http://www.cyberforum.ru/cpp-beginners/thread650371.html
Добрый вечер. Вопрос следующий , как возвратить из функции create последнее значение ЛС , чтоб в дальнейшем использовать в main. newfile.h struct list { int inf; list *first; ...
C++ Даны действительные положительные числа x,y,z если треугольник существует ,то ответить-является ли он остроугольным.помогите пожалуйста! подробнее

Показать сообщение отдельно
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.09.2012, 09:34
С исправлениями:
Код
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <Windows.h>
 
struct tov {char name[10]; float c; int kol;} t1;
 
void input(FILE *); // создание нового файла
void print(FILE *); // просмотр файла
void app(FILE *); // добавление в файл
void find(FILE *); // поиск и изменение
FILE *tf = NULL;
int main()
{ SetConsoleCP(1251); SetConsoleOutputCP (1251);
    char c;
 
while (1)
{
puts("\n* 1 – Новый файл");
puts("* 2 – Просмотр файла");
puts("* 3 – Добавление в файл");
puts("* 4 – Поиск и изменение");
puts("* 0 - Выход");
c=getch();
switch(c)
{ case '1':input(tf);break;
  case '2':print(tf);break;
  case '3':app(tf);break;
  case '4':find(tf);break;
  case '0':return 0;
  default : puts(" неверный режим");
}
}
}
 
void input(FILE *tf)
{ char ch;
tf=fopen("file1.dat","wb"); // открытие бинарного файла для записи
printf("\n Ввод товаров\n");
do { printf("\n название: "); scanf("%s",t1.name);
printf(" цена: "); scanf("%f",&t1.c);
printf(" количество: "); scanf("%d",&t1.kol);
fwrite(&t1,sizeof(t1),1,tf); // запись в файл одной структуры t1
printf("\n Закончить? *y/n *");
ch=getch();}
while (ch != 'y');
 
fclose(tf);
}
 
void print(FILE *tf)
{ int i;
tf=fopen("file1.dat","rb"); // открытие бинарного файла для чтения
i=1;
fread(&t1,sizeof(t1),1,tf); // чтение из файла одной структуры t1
while (!feof(tf))
{ printf("\n* %3d. Товар: %10s, цена: %6.2f, количество: %4d",i,t1.name,t1.c,t1.kol);
fread(&t1,sizeof(t1),1,tf);
i++;}
getch();
}
 
void app(FILE *tf)
{ char ch;
tf=fopen("file1.dat","ab"); // открытие бинарного файла для добавления
 
printf("\n *Ввод товаров \n");
do {printf("\n Название: "); scanf("%s",t1.name);
printf(" Цена: "); scanf("%f",&t1.c);
printf(" Количество: "); scanf("%d",&t1.kol);
fwrite(&t1,sizeof(t1),1,tf);
printf(" Закончить? *y/n ");
ch=getch();}
while (ch != 'y');
fclose(tf);
}
 
void find(FILE *tf)
{ char c,tov[10];
long int i;
int flag = 0;
tf=fopen("file1.dat","rb+");
puts(" Название искомого товара: ");
flushall();
gets(tov);
fread(&t1,sizeof(t1),1,tf);
while (!feof(tf))
{
  if (strcmp(t1.name,tov)==0)
    {
       flag = 1;
       printf("Товар %10s, цена: %6.2f, количество: %d",t1.name,t1.c,t1.kol);
       printf("\n Изменить? y/n ");
       c=getch();
       if (c=='y')
       {
           printf("\n Цена: ");scanf("%f",&t1.c);
           printf("\n Количество: ");scanf("%d",&t1.kol);
           i=sizeof(t1);
           fseek(tf, -i, SEEK_CUR);
           fwrite(&t1,sizeof(t1),1,tf);
           break;
        } 
     }
  fread(&t1,sizeof(t1),1,tf);
}
if (flag == 0) printf("\n Товар не найден\n");
fclose(tf);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru