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

Редактирование текстового файла - C++

Восстановить пароль Регистрация
 
Den-maximym
Сообщений: n/a
28.12.2011, 11:08     Редактирование текстового файла #1
Привет всем!)Помогите...впервые пишу на С++,и возникла проблема..я записываю в файл данные о книге...Затем по заданию мне нужно отредактировать файл - то есть изменить информацию об определенной книге,ввожу ее номер,начинаю изменять..и тут проблема..как это сделать..я попытался(функция void izm),но не выходит..Вот текст проги:
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
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "conio.h"
struct book {
int nom;
char title[100];
char author[100];
int tirazh;
char vidobl[70];
char vidbym[70];
int nomer;
}izd;
int x,y,z;
void vvod(){FILE*fp;
int n;
printf("Vvedite nomer zapisi:\n");
scanf("%d",&izd.nom);
printf("Vvedite naimenovanie knigi:\n");
scanf("%s",&izd.title);
printf("Vvedite avtora knigi:\n");
scanf("%s",&izd.author);
printf("Vvedite tirazh knigi:\n");
scanf("%d",&izd.tirazh);
printf("Vvedite vid oblozhki:\n");
scanf("%s",&izd.vidobl);
printf("Vvedite vid bymagi:\n");
scanf("%s",&izd.vidbym);
printf("Vvedite nomer zakaza:\n");
scanf("%d",&izd.nomer);
fp=fopen("my_file.txt","at");
if(fp != NULL)
fprintf(fp,"%d %s %s %d %s %s %d\n",izd.nom,izd.title,izd.author,izd.tirazh,izd.vidobl,izd.vidbym,izd.nomer);
else printf("Невозможно открыть файл\n");
fclose(fp);
printf ("Vvedite:\n1 - dlya zapisi esche knigi\n0 - dlya vihoda\n");
scanf("%d",&n);
switch(n){
case 1:vvod();break;
case 0:;break;
default : printf("Nevernya cifra\n");}}
void vivod(){
FILE*fp=fopen("my_file.txt","rt");
if(fp != NULL)
{do{
fscanf(fp,"%d %s %s %d %s %s %d\n",&izd.nom,izd.title,izd.author,&izd.tirazh,izd.vidobl,izd.vidbym,&izd.nomer );
printf("%d %s %s %d %s %s %d\n",izd.nom,izd.title,izd.author,izd.tirazh,izd.vidobl,izd.vidbym,izd.nomer);
}while(!feof(fp));}
else printf("Невозможно открыть файл\n");
fclose(fp);}
void tirazh(){
int tt;
printf("Vvedite tirazh:");
scanf("%d",&tt);
FILE*fp=fopen("my_file.txt","rt");
if(fp != NULL){do{
fscanf(fp,"%d %s %s %d %s %s %d\n",&izd.nom,izd.title,izd.author,&izd.tirazh,izd.vidobl,izd.vidbym,&izd.nomer );
if(izd.tirazh>tt){
printf("%d %s %s %d %s %s %d\n",izd.nom,izd.title,izd.author,izd.tirazh,izd.vidobl,izd.vidbym,izd.nomer);} }
while(!feof(fp));}
else printf("Невозможно открыть файл\n");
fclose(fp);}
void izm(){
printf("vvedite nomer zapisi dly izmenenya");
scanf("%d",&x);
FILE*fp=fopen("my_file.txt","r+");
while(!feof(fp))
{y=ftell(fp);
fscanf(fp,"%d %s %s %d %s %s %d\n",&izd.nom,izd.title,izd.author,&izd.tirazh,izd.vidobl,izd.vidbym,&izd.nomer );
if(x==izd.nom)z=y; }
fseek(fp,z,SEEK_SET);
printf("Vvedite naimenovanie knigi:\n");
scanf("%s",&izd.title);
printf("Vvedite avtora knigi:\n");
scanf("%s",&izd.author);
printf("Vvedite tirazh knigi:\n");
scanf("%d",&izd.tirazh);
printf("Vvedite vid oblozhki:\n");
scanf("%s",&izd.vidobl);
printf("Vvedite vid bymagi:\n");
scanf("%s",&izd.vidbym);
printf("Vvedite nomer zakaza:\n");
scanf("%d",&izd.nomer);
fprintf(fp,"%d %s %s %d %s %s %d\n",x,izd.title,izd.author,izd.tirazh,izd.vidobl,izd.vidbym,izd.nomer);
fclose(fp);}
int main()
{int b;
do{printf("Vvedite:\n1 - dlya vvoda knigi\n2 - dlya vivoda zapisannyh knig\n3 - dlya vivoda knig,tirazh kotoryh prevyshaet zadznnyi\n0 - dlya vihoda\n");
scanf("%d",&b);
switch(b){
case 1:vvod();break;
case 2:vivod();break;
case 3:tirazh();break;
case 4:izm();break;
case 0:;break;
default : printf("Nevernya cifra\n");}}
while(b!=0);
getch();}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2011, 11:08     Редактирование текстового файла
Посмотрите здесь:

C++ Редактирование текстового файла
C++ редактирование файла
C++ Редактирование бинарного файла
C++ Редактирование текстового файла
Редактирование бинарного файла C++
C++ Редактирование XML файла
Указание текстового файла-источника и принимающего файла в cmd C++
Редактирование части файла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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