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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Дано четырёх значное число. Определить: а)Входят ли в него цифры 2 или 7. б) входят ли в него 3,6 или 9 http://www.cyberforum.ru/cpp-beginners/thread412957.html
Дано четырёх значное число. Определить: а)Входят ли в него цифры 2 или 7. б)Входят ли в него 3,6 или 9 Сделать эту программу с классом. Кто знает подскажите Добавлено через 17 минут помогите решить
C++ нужно сделать так, чтобы золотые не падали на стены void PlusGold(Game &g) //Функция разброски золота { int i,x,y; int n = g.hero.PCount; do { x = rand() % 73+3; // y = rand() % 20+3; //кординаты золотого for(i = 0; i < n; i++) { http://www.cyberforum.ru/cpp-beginners/thread412952.html
Почему не хочет создаваться файл? C++
Если в тексте программы указать путь и имя файла, то файл создаваться не хочет, char destination="d:\aaa.txt"; fopen(destination,"w"); а если ввести путь файла с клавиатуры следующим образом, то все нормально char destination; cin>>destination; fopen(destination,"w"); Как сделать чтобы имя файла и путь задавать в тексте программы? Это наверно как-то связано с кодировкой символов.
C++ Определение положения точки относительно криволинейного контура
Нужно написать две программы: Дан криволинейный замкнутый контур на плоскости, определить принадлежит ли точка данному контуру? 1 программа: определение с помощью многоугольника, построенного вокруг контура(если входит в многоугольник, то принадлежит контуру) 2 программа: Определение положения точки относительно замкнутого криволинейного контура путем интегрирования сторон
C++ Вывести на экран дату дня, который будет через неделю от заданного дня http://www.cyberforum.ru/cpp-beginners/thread412926.html
помогите с задачей Нужно оформить через операторы циклов, Ввести на экран дату в формате ДД.ММ.ГГГГ, вывести на экран дату дня через неделю
C++ Сортировка и перегрузка Помогите пж с задачей: Определить функцию Sort(), которая позволяет отсортировать массив. Перегрузить функцию Sort(), добавив параметр направление сортировки – по убыванию или возрастанию. подробнее

Показать сообщение отдельно
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
20.12.2011, 21:13     нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки))
вот задание для программы:
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;
}

помогите пожалуйста переделать код с использованием Файлы текстовые (потоки)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru