![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.12.2010
Сообщений: 12
|
![]()
/*Дело в том, что информация которую я в ввожу в файл записывается непонятными символами, а нужно чтобы файл заполнялся так как я ввожу в пограмме*/
#include <iostream.h> #include <stdio.h> #include <process.h> #include <stdlib.h> #include <conio.h> #include <string.h> #define MAX 2 //#include "Hedfun.h" //#include "CrTable.h" void main() { void Creat(); void Write(); void DefOp(); void Open(); void Correct(); void Del(); void Find(); char n; //создание файла. printf("=========================== =====================\n"); printf("\n *** Vi xotite sozdat noviy file?"); printf("(y/n) ***\n"); printf("\n Vvedite zhelaemoe deystviye: "); scanf("%s",&n); printf("=========================== =====================\n"); if(n=='y' || n=='Y') { Creat(); } else if(n=='N' || n=='n') { } else if(n!='n' || n!='N' || n!='y' || n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); } //запись в файл. printf("\n *** Vi xotite zapisat dannie v file?"); printf("(y/n) ***\n"); printf("\n Vvedite zhelaemoe deystviye: "); scanf("%s",&n); if(n=='y' || n=='Y') { Write(); } else if(n=='N' || n=='n') { } else if(n!='n' || n!='N' || n!='y' || n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); } DefOp(); //открытие файла. printf("\n *** Vi xotite otkrit file?"); printf("(y/n) ***\n"); printf("\n Vvedite zhelaemoe deystviye: "); scanf("%s",&n); if(n=='y' || n=='Y') { Open(); } else if(n=='N' || n=='n') { } else if(n!='n' || n!='N' || n!='y' || n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); } //редактирование файла. printf("\n *** Vi xotite otredaktirovat file?"); printf("(y/n) ***\n"); printf("\n Vvedite zhelaemoe deystviye: "); scanf("%s",&n); if(n=='y' || n=='Y') { Correct(); } else if(n=='N' || n=='n') { } else if(n!='n' || n!='N' || n!='y' || n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); } //удаление файла. printf("\n Vi xotite udalit file or ego elemnt?"); printf("\n y/n"); scanf("%s",&n); if(n=='y' || n=='Y') { Del(); } else if(n=='N' || n=='n') { } else if(n!='n' || n!='N' || n!='y' || n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); } //поиск информации об элементе. printf("Vi xotite poluchit opisanie elementa?"); printf("\n y/n"); scanf("%s",&n); if(n=='y' || n=='Y') { Find(); } else if(n=='N' || n=='n') { } else if(n!='n' || n!='N' || n!='y' || n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); } } продолжение ниже. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 20.12.2010
Сообщений: 12
|
![]()
//Стуктура, содержащая данные о компьютере.
struct Comp { int zapis; char marka[20]; int hdd; int ozu; int date; char monitor[20]; }; FILE *sfptr; void DefOp() { if((sfptr=fopen("Comp.dat","r+"))== NULL) { printf("\n Error open file!!!\n"); exit(1); } } //Функция открытие файла произвольного доступа. void Open() { struct Comp OPEN; rewind(sfptr);//перемотка. while(!feof(sfptr))//Идет до конца файла { printf("\n========================= =======================\n"); fread(&OPEN,sizeof(struct Comp),1,sfptr); printf("\n Nomer zapisi: %d",OPEN.zapis); printf("\n Marka computera: %s ",OPEN.marka); printf("\n Tip monitora: %s",OPEN.monitor); printf("\n Razmer HDD (v gigabaytax): %d ",OPEN.hdd); printf("\n Razmer OZU (v gigabaytax): %d ",OPEN.ozu); printf("\n God vipuska: %d ",OPEN.date); printf("\a"); } printf("\n========================= =======================\n"); } //Функия корректировки файла. void Correct() { struct Comp CORRECT; rewind(sfptr); printf("\n Vvedite nomer zapisi: "); printf("(0 to exit):"); scanf("%d",&CORRECT.zapis); while(CORRECT.zapis!=0) { printf("\n * Vvedite marku: "); scanf("%s",&CORRECT.marka); printf("\n * Vvedite tip monitora: "); scanf("%s",&CORRECT.monitor); printf("\n * Vvedite razmer HDD: "); scanf("%d",&CORRECT.hdd); printf("\n * Vvedite razmer OZU: "); scanf("%d",&CORRECT.ozu); printf("\n * Vvedite god vipuska: "); scanf("%d",&CORRECT.date); fseek(sfptr,(CORRECT.zapis-1)*sizeof(struct Comp),SEEK_SET); fwrite(&CORRECT,sizeof(struct Comp),1,sfptr); printf("\n Vvedite nomer zapisi: "); scanf("%d",&CORRECT.zapis); } } //Функция удаления файла. void Del() { int an,Deli,i; struct Comp DEL = {0,"",0,0,0,""}; printf("\n Vi xotite udalit vse iz fiyla ili otdelniy elemnt?\n"); printf("\n Udalit vse - 1,Udalit otdelniy element - 2\n"); printf("To exit put - 0:"); scanf("%d",&an); switch(an) //Полное удаление. { case 1: { rewind(sfptr); for(i=1;i<=10;i++) { fwrite(&Del,sizeof(struct Comp),1,sfptr); } } break; //Удаление некоторых частей. case 2: { rewind(sfptr); printf("\n Vvedite nomer zapisi: \n"); printf("(0 to exit):"); scanf("%d",&Deli); while(Deli!=0) { fseek(sfptr,(Deli-1)*sizeof(struct Comp),SEEK_SET); fwrite(&DEL,sizeof(struct Comp),1,sfptr); printf("\n Vvedite nomer zapisi: \n"); scanf("%d",&Deli); } } break; case 0:exit(0); break; default: { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); } break; } } //Функция поиска по файлу(Через название элемента игнорируя регистр)с помощью //библиотечной фунцкции чравнения строк. void Find() { char marka[10],an; int n=1; printf("\n Enter name of of the element:"); scanf("%s",marka); struct Comp FIND; rewind(sfptr); while(n!=0) { while(!feof(sfptr))//Идет до конца файла { fread(&FIND,sizeof(struct Comp),1,sfptr); if(strnicmp(marka,FIND.marka,9)==0)//Функция сравнивания двух строк(Игнорирует регистр) { //Если найдено совпадение возвращает 0 printf("\n Nomer zapisi:"); scanf("%d",&FIND.zapis); printf("\n Marka:"); scanf("%s",&FIND.marka); printf("\n HDD:"); scanf("%d",&FIND.hdd); printf("\n OZU:"); scanf("%d",&FIND.ozu); printf("\n Data:"); scanf("%d",&FIND.date); printf("\n Monitor:"); scanf("%s",&FIND.monitor); printf("\n Prodolzhat poisk?"); printf("\n(y/n)"); scanf("%d",&an); if(an=='Y'||an=='y') { } else if(an=='N'||an=='n') { break; } else if(n!='n'||n!='N'||n!='y'||n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); exit(0); } } } printf("\n Ne naydeno!"); printf("\n Nachat noviy poisk?"); printf("\n (y/n)"); scanf("%d",&an); if(an=='Y'||an=='y') { rewind(sfptr); printf("\n Vvedite nomer zapisi:"); scanf("%s",&marka); } else if(an=='N'||an=='n') { n=0; } else if(n!='n'||n!='N'||n!='y'||n!='Y') { printf("\n Nevernoe deystviye!!!"); printf("\n Nazhmite lubuyu klavishu dlya prodolgeniya..."); _getch(); exit(0); } } } продолжение ниже. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 20.12.2010
Сообщений: 12
|
![]()
//Функция ввода данных в файл.
void Creat() { int i; struct Comp sozdanie = {0,"",0,0,0,""}; if((sfptr=fopen("Comp.dat","w"))==N ULL) { printf("\n Nevozmozhno otkrit file!!!\n"); exit(1); } for(i=0;i<1;i++) { fwrite(&sozdanie,sizeof(struct Comp),1,sfptr); } } void Write() { struct Comp WRITE; printf("=========================== =====================\n"); printf("\n Vvedite nomer zapisi: "); printf("(0 to exit): "); scanf("%d",&WRITE.zapis); while(WRITE.zapis!=0) { printf("\n * Vvedite marku computera: "); scanf("%s",&WRITE.marka); printf("\n * Vvedite tip monitora: "); scanf("%s",&WRITE.monitor); printf("\n * Vvedite razmer HDD (v gigabaytax): "); scanf("%d",&WRITE.hdd); printf("\n * Vvedite razmer OZU (v gigabaytax): "); scanf("%d",&WRITE.ozu); printf("\n * Vvedite god vipuska: "); scanf("%d",&WRITE.date); printf("\a"); fseek(sfptr,(WRITE.zapis-1)*sizeof(struct Comp),SEEK_SET); fwrite(&WRITE,sizeof(struct Comp),1,sfptr); printf("\n Vvedite nomer zapisi: "); printf("(0 to exit): "); scanf("%d",&WRITE.zapis); } fclose(sfptr); } |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Файл произвольного доступа | ensoleille | Помощь студентам | 0 | 14.03.2011 22:51 |
Pascal файл прямого доступа | AfeR | Помощь студентам | 2 | 13.07.2010 02:25 |
файлы произвольного доступа и множества(горю)) | drcoxer | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.06.2010 11:02 |
Создать в редакторе текстовый файл, внести в него 10 строк произвольного текста. Разработать программу, к | Pan_rust | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 24.05.2010 23:04 |
Задача:поиск и сортировка.(файл произвольного размера) | xxxBITxxx | Помощь студентам | 3 | 11.01.2009 19:48 |