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

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

Войти
Регистрация
Восстановить пароль
 
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
#1

нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) - C++

20.12.2011, 21:13. Просмотров 793. Ответов 5
Метки нет (Все метки)

вот задание для программы:
6. Задан текстовый файл input.txt. Требуется определить строки этого файла, содержащие максимальную по длине подстроку, состоящую из одинаковых символов латинского алфавита. Заглавные и строчные буквы не различаются. Если таких строк несколько, найти первые 10. Результат вывести на консоль в форме, удобной для чтения.
и вот код этой программы с использованием Файлы текстовые (FILE*) :
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
#include <iostream>
#include <cstdio>
#include <cstring>
 
using namespace std;
 
const int MAXN = 1000;
 
int main() {
FILE* fin;
char *current_string = new char[MAXN + 1];
char* answers[10];
int max_len_in_file = 0, number_of_answers = 0;
 
if ((fin = fopen("input.txt", "r")) == NULL) {
cout << "File can't be opened" << endl;
return 0;
}
fgets(current_string, MAXN, fin);
if (feof(fin)) {
cout << "File is empty" << endl;
system("pause");
return 0;
}
 
// ????? ?????? ??????? ?? ?????, ???? ??? ?? ??????????
 
do {
// ??? ??? ? ??? ????????? ????? ???????
int length = strlen(current_string);
if (length == 0) {
fgets(current_string, MAXN, fin);
continue;
}
 
char* copy_of_string = new char[length + 1];
 
strcpy(copy_of_string, current_string);
// ???????? ? ??????? ????????
strlwr(copy_of_string);
 
int maxlen = 0;
for (int begin = 0; begin < length; ++begin) {
// ?? ????? - ?????????? ????? ??????
if (!isalpha(copy_of_string[begin])) continue;
 
for (int end = begin + 1; end < length; ++end)
if (copy_of_string[end] != copy_of_string[begin]) {
int newlen = end - begin;
if (newlen > maxlen) {
maxlen = newlen;
}
break;
}
}
 
if (maxlen > max_len_in_file) {
for (int i = 0; i < number_of_answers; ++i) delete [] answers[i];
 
number_of_answers = 1;
max_len_in_file = maxlen;
 
answers[0] = new char[length + 1];
strcpy(answers[0], current_string);
 
fgets(current_string, MAXN, fin);
delete [] copy_of_string;
continue;
}
 
if (maxlen == max_len_in_file && number_of_answers < 10) {
answers[number_of_answers] = new char[length + 1];
strcpy(answers[number_of_answers], current_string);
number_of_answers++;
}
 
delete [] copy_of_string;
fgets(current_string, MAXN, fin);
} while (!feof(fin));
delete [] current_string;
 
cout << "Max length = " << max_len_in_file << endl;
cout << "Number of answers = " << number_of_answers << endl;
 
for (int i = 0; i < number_of_answers; ++i) cout << answers[i];
system ("pause");
return 0;
}

помогите пожалуйста переделать код с использованием Файлы текстовые (потоки)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 21:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) (C++):

Текстовые файлы и потоки ввода/вывода - C++
Доброго времени суток. Уважаемый гуру, не могли бы вы мне помочь с решением данной программы. Алгоритм знаю, но никак не могу его...

по теме текстовые файлы.нужно перевести в паскаль,пожалуйста - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; int main() { ifstream F(&quot;1.txt&quot;); ...

Текстовые файлы - C++
добрый день, помогите написать следующую программу (plz ... plz ... plz ))) : Случайным образом создать таблицу пар символьных...

Текстовые файлы - C++
Здесь так много умных людей, что не удержался и опять решил попросить помощи, т.к. в прошлые 2 раза очень сильно помогли. Вроде потом...

Текстовые файлы - C++
Имеется текстовый файл. Все четные строки этого файла записать во второй, а нечетные в третий файл. Порядок следования строк сохраняется. ...

Текстовые файлы - C++
В файле находятся вещественные числа. Определить количество чисел в наиболее длинной возрастающей последовательности элементов файла. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vikichocolate
25 / 14 / 1
Регистрация: 11.11.2011
Сообщений: 94
20.12.2011, 21:20 #2
C++
1
2
3
4
5
 ifstream in;
        in.open("input.txt");
        ofstream  out;
        out.open("output.txt"); 
        in>>x>>y;


так можно +
C++
1
#include <fstream>
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
20.12.2011, 21:21  [ТС] #3
спасибо, но мне нужно заменить все функции на потоковые
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
20.12.2011, 21:28 #4
вы используете всего 1 функцию fgets
---> http://www.cplusplus.com/reference/i...tream/getline/
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
20.12.2011, 21:45  [ТС] #5
то есть только одну функцию я могу заменить в своей программе?
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
26.12.2011, 21:40  [ТС] #6
какие еще функции возможно заменить?

Добавлено через 5 часов 1 минуту
подскажите пожалуйста
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2011, 21:40
Привет! Вот еще темы с ответами:

Текстовые файлы - C++
Здравствуйте! Никак не могу найти информацию по функциям, которые должны редактировать текстовые файлы (изменить, считать и тп)....

Текстовые файлы - C++
Помогите пожалуйста с программой. Она должна выводить все числа встеченные в программе (числом считать только те которые состоят только из...

Текстовые файлы - C++
Дан файл, содержащий целые числа. Записать их в другие два файла, при этом в первый записать четные, а во второй нечетные числа. Ребята,...

Текстовые файлы в C++ - C++
Помогите пожалуйста написать прогу по файлам в С++. Вот задание:


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.12.2011, 21:40
Ответ Создать тему
Опции темы

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