Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <locale.h>
- #define MAX 10
- #define NAME_STR "STRINGS.DAT"
- #define NAME_IDX "IDX.DAT"
- struct strings{
- int indexInFile;
- char a[160];
- } s[MAX], strl;
- int comp(const void *a1, const void *a2) {
- return strcmp(((struct strings *)a1)->a, ((struct strings *)a2)->a);
- }
- //void enterSyst(void);
- void enterDat(void);
- //void outputDat();
- void closeFiles(void);
- int menu_select(void);
- void searchAll(void);
- FILE *str, *ind;
- int main(void)
- {
- setlocale(LC_ALL, "Russian");
- char choice;
- int n = 0;
- for (;;) {
- choice = menu_select();
- switch (choice) {
- case 1:
- enterDat();
- break;
- case 2: searchAll();
- break;
- case 0: exit(0);
- }
- }
- return 0;
- }
- int menu_select(void)
- {
- char s[80];
- int c;
- printf("1. Добавление файла записей\n");
- printf("2. Нахождение и вывод по заданному индексу всех лексикографически старших строк.\n");
- printf("0. Выход\n");
- do {
- printf("\nВведите номер нужного пункта: ");
- gets(s);
- c = atoi(s);
- } while (c<0 || c>3);
- return c;
- }
- void enterDat(){
- char st[5];
- int index = 0;
- int c;
- printf("Введите количество строк: ");
- gets(st);
- c = atoi(st);
- printf("Введите строки для записи в файл: \n");
- for (index = 0; index < c; index++){
- gets(s[index].a);
- s[index].indexInFile = index + 1;
- }
- str = fopen(NAME_STR, "wb");
- for (index = 0; index < c; index++){
- fwrite(s[index].a, sizeof(strl), 1, str);
- }
- printf("\n");
- qsort(s, c, sizeof(s[0]), comp);
- for (index = 0; index < c; index++){
- printf(s[index].a);
- printf("\n");
- }
- fclose(str);
- ind = fopen(NAME_IDX, "wb");
- printf("\n");
- for (index = 0; index < c; index++){
- fwrite(&s[index].indexInFile, sizeof(strl), 1, ind);
- printf("%d",s[index].indexInFile);
- printf("\n");
- }
- fclose(ind);
- }
- void searchAll(void){
- int index = 0;
- str = fopen(NAME_STR, "wb");
- printf("Выберите номер нужной строчки: ");
- while (!feof(str)){
- fread()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement