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

Нужно чтобы программа искала в txt первое слово, и выводила все остальное, что есть в строке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление элемента из одномерного массива http://www.cyberforum.ru/cpp-beginners/thread976762.html
Задан массив целых чисел. Удалить k-й элемент. Помогите пожалуйста решить. Добавлено через 7 минут #include<iostream> int i,k,n,a; using namespace std; int main() { setlocale(LC_ALL, "rus");
C++ Ошыбка File1.cpp(29): E2467 'main()' cannot return a value #include<stdio.h> #include<conio.h> #include<math.h> #define pi 3.14159 //Прототип функцій: float BitshPoverhnja (float rc, float hc); float PovPoverchnja (float r, float hc); float Objem (float rc, float hc); void main() http://www.cyberforum.ru/cpp-beginners/thread976721.html
Ошибка С2447 C++
Всем здравствуйте. Сразу говорю, что в интернете решение этой ошибки не нашел, либо плохо искал, поэтому обратился сюда. Код:#include <iostream> using namespace std; int main (); { cout << "Hello world!"; return 0; system ("pause"); } Вывод:1>------ Построение начато: проект: Calculator, Конфигурация: Debug Win32 ------
Программа на цикл for (как добиться вывода на экран?) C++
Программа на цикл for(помогите добиться вывода на экран), повторять в цикле нужно вот это выражение: (x^i+sin(ix))/3^i от i:=1 до заданного n. Помогите доработать, чтобы компилировало и работало: #include <iostream> #include <math.h> using namespace std; int main() { int y; char x,n;
C++ Поиск не работает http://www.cyberforum.ru/cpp-beginners/thread976695.html
Помогите пожалуйста, понять и исправить функцию поиска в линейном списке . Не понимаю, почему прога вылетает((( #include <iostream> #include <cstdlib> using namespace std; const int N=5; struct I {
C++ Сортировка по первому столбцу! Как отсортировать что бы имя с.г культуры было в алфавитмном порядке? #include "stdafx.h" #include <conio.h> #include <iostream> #include <stdio.h> #include <string.h> #include <windows.h> using namespace std; подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7210 / 4376 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
15.10.2013, 01:48
Цитата Сообщение от olia90 Посмотреть сообщение
Вариант о двух числах не рассматривается. В файле в одной строке только одно число, если там их два, это уже считается ошибка в файле.
Блин, а я уж сделал для n-чисел в строке( Жаль, ну оно для вас все равно было бы слишком мудрено.

Цитата Сообщение от olia90 Посмотреть сообщение
Обязательное условие: использования классов и перегруженного метода.
Вот это вообще непонятно зачем нужно, ну да ладно
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <cctype>
 
typedef std::istream_iterator<std::string> input_str;
typedef std::ostream_iterator<std::string> output_str;
 
// прототип класса для работы со строкой
class Line
{
  public:
    Line();
    Line(const char *);
    Line(const std::string &);
 
    std::string getData() const;
    void setData(const char *);
    void setData(const std::string &);
    void modifyInt(const int);
    bool firstWordEqual(const std::string &);
    bool firstWordEqual(const char *);
    std::string findInt() const;
 
  protected:
    std::string data;
};
 
std::ostream & operator<< (std::ostream &, const Line &);
std::istream & operator>> (std::istream &, Line &);
 
// вспомогательная функция для определения, является ли слово числом (C++11)
bool isInt(const std::string &);
 
 
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    std::ofstream o("output.txt");
    Line line; // создаем объект для работы со строкой
    std::string key; // слово для поиска
    std::cout << "Enter word to search: ";
    std::cin >> key;
 
    // пока удалось считать новую строку из файла
    while (ifs >> line)
    {
        // если первое слово в строке совпадает
        if (line.firstWordEqual(key))
        {
            std::cout << line << std::endl; // выводим строку на экран
            // если содержит числа в строке
            if (!line.findInt().empty())
            {
                std::cout << "Would you like to replace? (y/n) ";
                char ch;
                std::cin >> ch;
                // если решили заменить
                if (ch == 'y')
                {
                    int x;
                    std::cout << "Enter new int: ";
                    std::cin >> x;
                    line.modifyInt(x);
                }
            }
            o << line; // записываем полученную строку в файл
        }
    }
}
 
// реализация класса
Line::Line() : data()
{}
 
Line::Line(const char *c) : data(c)
{}
 
Line::Line(const std::string &s) : data(s)
{}
 
std::string Line::getData() const
{
    return data;
}
 
void Line::setData(const char *c)
{
    data.assign(c);
}
 
void Line::setData(const std::string &s)
{
    data = s;
}
 
void Line::modifyInt(const int x)
{
    // создаем объект istringstream и инициализируем его строкой
    std::istringstream ist(data);
    // создаем объект ostringstream для перехвата новой строки
    std::ostringstream ost;
    // заменяем в последовательности найденное число на новое
    std::replace_copy(input_str(ist), input_str(), output_str(ost),
        this->findInt(), " " + std::to_string(x) + " " );
    // заменяем строку на последовательность
    data = ost.str();
}
 
bool Line::firstWordEqual(const std::string &key)
{
    // создаем объект istringstream и инициализируем его строкой
    std::istringstream ist(data);
    std::string word;   // вспомогательное слово
    ist >> word;        // считываем первое слово из строки
    return word == key;
}
 
bool Line::firstWordEqual(const char *key)
{
    // создаем объект istringstream и инициализируем его строкой
    std::istringstream ist(data);
    std::string word;   // вспомогательное слово
    ist >> word;        // считываем первое слово из строки
    return word == std::string(key);
}
 
std::string Line::findInt() const
{
    // создаем объект istringstream и инициализируем его строкой
    std::istringstream ist(data);
    // пытаемся найти слово в строке
    input_str it = std::find_if(input_str(ist), input_str(), isInt);
    // если числа в строке нет, возвращаем пустое слово, иначе
    // возвращаем слово, являющееся числом
    return (it == input_str() ? std::string() : *it);
}
 
std::ostream & operator<< (std::ostream &o, const Line &l)
{
    // формируем поток
    o << l.getData() << std::endl;
    // возвращаем ссылку на него
    return o;
}
 
std::istream & operator>> (std::istream &ist, Line &l)
{
    // временная переменная
    std::string str;
    // считываем линию
    std::getline(ist, str);
    // устанавливаем новое значение
    l.setData(str);
    // возвращаем ссылку на поток
    return ist;
}
 
bool isInt(const std::string &s)
{
    return std::all_of(s.begin(), s.end(), isdigit);
}
Объявление и реализацию сами по файлам распихаете.
Если компилятор не поддерживает С++11, то напишите собственную реализацию std::to_string() и std::all_of()
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru