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

Для каждой строки файла удалить короткое слово - C++

Восстановить пароль Регистрация
 
Rinosky
 Аватар для Rinosky
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 28
26.12.2013, 22:08     Для каждой строки файла удалить короткое слово #1
Для каждой строки файла удалить короткое слово. Результат записать в файл.
C++
1
2
3
4
5
6
7
8
9
FILE *f1,*f2;
f1=fopen("F1.txt","rt");
f2=fopen("F2.txt","wt");
while(!feof(f1)) /* пока не конец файла */
fgets(w,1000,f1);
fprintf(f2,"%c",w[j]);
fprintf(f2," - %i\n",k);
fclose(f1);
fclose(f2);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2013, 22:08     Для каждой строки файла удалить короткое слово
Посмотрите здесь:

C++ самое короткое слово первой строки,которого нет во втором предложении
Найти самое короткое слово. Строки C++
C++ Удалить из каждой строки файла первые K символов
Строки (В произвольном тексте найти самое короткое слово) C++
C++ Для каждой строки файла переставить первое и среднее слово
C++ В заданном предложении удалить самое короткое слово
C++ Вывести на экран самое короткое слово заданной строки (если их несколько, то первое)
В каждой строке файла удалить среднее слово C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
27.12.2013, 00:04     Для каждой строки файла удалить короткое слово #2
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
#include <iostream>
#include <fstream>
#include <string>
#include <list>
#include <sstream>
#include <iterator>
#include <algorithm>
#include <cctype>
 
void saveFromIO(std::istream& in, std::list<std::string>& list)
{
    std::string line;
 
    while (std::getline(in, line))
    {
        list.push_back(line);
    }
}
 
void saveToIO(std::ostream& out, const std::list<std::string>& list)
{
    std::list<std::string>::const_iterator start = list.begin();
    std::list<std::string>::const_iterator end = list.end();
 
    while (start != end)
    {
        out << *start++ << '\n';
    }
}
 
bool isMin(const std::string& left, const std::string& right)
{
    return left.size() < right.size();
}
 
void removeSmaller(std::string& line)
{
    std::stringstream str(line);
    std::istream_iterator<std::string> beg(str), end;
    std::list<std::string> words(beg, end);
    std::string min_word = *min_element(words.begin(), words.end(), isMin);
    size_t offset = line.find(min_word);
 
    std::string::iterator ii;
    do
    {
        ii = line.begin();
        std::advance(ii, offset);
        line.erase(ii);
    } while (isalnum(*ii));
}
 
int main()
{
    std::ifstream in("text.txt");
    std::ofstream out("text_out.txt");
 
    if (!in || !out)
    {
        return -1;
    }
 
    std::list<std::string> file;
    saveFromIO(in, file);
 
    std::list<std::string>::iterator iter_beg = file.begin(), iter_end = file.end();
    while (iter_beg != iter_end)
    {
        removeSmaller(*iter_beg++);
    }
 
    saveToIO(out, file);
 
    std::cout << "Done!" << std::endl;
}
Yandex
Объявления
27.12.2013, 00:04     Для каждой строки файла удалить короткое слово
Ответ Создать тему
Опции темы

Текущее время: 23:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru