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

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

Войти
Регистрация
Восстановить пароль
 
Kingl
Сообщений: n/a
#1

Работа с файлами - C++

30.11.2013, 00:55. Просмотров 380. Ответов 0
Метки нет (Все метки)

Составить программу, реализующую функции указанного ниже меню. Выполнить функциональное разбиение программного кода.

Меню программы:
1 – Сформировать с клавиатуры строку и записать в файл (строка может содержать пробелы);
2 – Считать строку из файла и распечатать;
3 – Зашифровать строку и записать в файл;
4 – Расшифровать строку и записать в файл;
5 – Выход.

Четные и нечетные символы меняются местами.

Вот что у меня получилось, все работает, но если сразу допустим 4 пункт меню выбрать, пропуская первый, то есть ничего не записывая в файл - виснет, а должно выводить ошибку. и функция "default" тоже не работает. Вот мой код:
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <io.h>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <string.h>
#include <windows.h>
#include <ShellAPI.h>
 
void f(char*, char*);
 
void main()
{
    char Str1[100] = "";
    char Str2;
    unsigned char pm, i=0, j=0;
 
    setlocale(LC_CTYPE, "Russian");
 
    FILE *fl;
 
    for(;;)
    {
        puts("Выберите действие: \n");
        puts("1. Сформировать строку и записать в файл");
        puts("2. Считать строку и распечатать");
        puts("3. Зашифровать строку и записать в файл");
        puts("4. Расшифровать строку и записать в файл");
        puts("5. Выход.\n");
 
        pm=_getch();
 
        switch(pm)
        {
            case '1':
                if((fl=fopen("fl.txt", "w"))!=NULL) // Открываем файл только для записи
                {
                    puts("Введите строку: \n");
                    SetConsoleCP(1251);
                    gets(Str1); //Ввод строки
                    fputs(Str1, fl); // запись строки в файл
                    SetConsoleCP(866);
                    fclose(fl); //Закрыть файл после записи
 
                    puts("Строка записана успешно \n");
                }
                else
                {
                    puts("Ошибка при открытии файла \n");
                }
                    break;
 
            case '2':
                if ((fl=fopen("fl.txt", "r"))!=NULL) // Открываем файл только для чтения
                {
                    puts("Строка из файла: \n");
                    fgets(Str1, 100, fl); //Считывание строки из файла
                    puts(Str1);
                    printf("\n");
                    fclose(fl);
                }
                else
                {
                    puts("Ошибка при открытии файла \n");
                }
                break;
 
            case '3':
                if ((fl=fopen("fl.txt", "w+"))!=NULL) // Открываем файл для чтения и записи
                {
                    puts("Исходная строка:");
                    puts(Str1);
                    fgets(Str1, 100, fl);
                    printf("\n");
 
            f(str1, str2);
 
                    SetConsoleCP(1251);
                    fputs(Str1, fl);
                    SetConsoleCP(866);
                    puts("Зашифрованная строка:");
                    puts(Str1);
                    printf("\n");
                    fclose(fl);
 
                    puts("Строка успешно записана в файл \n");
                    }
                    else
                    {
                        puts("Ошибка при открытии файла \n");
                    }
                    break;
 
            case '4':
                if((fl=fopen("fl.txt", "w+"))!=NULL) // Открываем файл для чтения и записи
                {
                    puts("Исходная строка в файле:");
                    puts(Str1);
                    fgets(Str1, 100, fl);
                    printf("\n");
                    
            f(str1, str2);
                    
                    SetConsoleCP(1251);
                    fputs(Str1, fl);
                    SetConsoleCP(866);
                    puts("Расшифрованная строка:");
                    puts(Str1);
                    printf("\n");
                    fclose(fl);
                }
                else
                {
                    puts("Ошибка при открытии файла \n");
                }
                break;
 
            case '5':
                return;
default:
                puts("Введите значение от 1 до 5 \n");
                break;
        
    }
}
}
 
void f( char *str1, char *str2)
{
    for(int i=0; i<strlen(Str1)-1; i++)
    {             if(i%2==0) // Замена четного символа на нечетный
        {
            Str2=Str1[i];
            Str1[i]=Str1[i+1];
            Str1[i+1]=Str2;
        }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 00:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами (C++):

Работа с файлами - C++
Проблема с связыванием программы с файлом Нужно, чтобы данные считывались из файла, а не вводились Не совсем понимаю #include...

Работа с файлами - C++
Нужно создать программу которая записывает в файл,вводимый текст. Далее выводится меню выбора. 1.Просто вывети тект из файла; ...

Работа с файлами - C++
Здравствуйте! Не могли бы вы мне помочь (показать пример), как работать с файлами в С/С++. К произвести чтение данных из файла (например в...

работа с файлами - C++
Написать программу, открывающую файл, перемещающую указатель файла и чтение байтов текста в буфер с последующим выводом текста на экран....

Работа с файлами - C++
Всем привет. Дано условие: перенести в новый файл текст таким образом, чтобы в него были записаны символы с четных позиций в строках...

Работа с файлами - C++
Нужно написать программу создания алфавита по заданному тексту, который должен считываться из файла, и посчитать частоту встречаемости...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 00:55
Привет! Вот еще темы с ответами:

Работа с файлами. - C++
Всем Доброго времени суток. С сегодняшнего дня в инсте стали задавать задачи, на работу с файлами. Раньше с таким не сталкивался, поэтому...

Работа с файлами - C++
Какаой вариант работы с фалами лучше и какая разница между ними вообще?? ofstream File(&quot;file.txt&quot;); File&lt;&lt;&quot;Привет!!!&quot;; ...

Работа с файлами. С++ - C++
Доброго времени суток. В программировании полный ноль. Мог бы мне кто нибудь, объяснить как вывести из файла определенную (часть из...

работа с файлами в С/C++ - C++
Привет! Нужна помощь специалиста) Подскажите, пожалуйста, как из файла filename.txt, в котором содержится матрица из 1000 на 5, записать...


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

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

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