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

дан код, не компилируется - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив: Поменять местами столбцы матрицы так, чтобы их минимальные элементы образовывали возрастающую последовательность. http://www.cyberforum.ru/cpp-beginners/thread861366.html
дана матрица размера nxm. поменять местами её столбцы так, что бы их минимальные элементы образовывали возрастающую последовательность.
C++ Вывести элементы массива змейкой по столбцу! Нужно вывести элементы начиная с первого по столбцу... Помогите доработать программу, мне удалось вывести только первый столбец.. #include "stdafx.h" #include <iostream> using namespace std; int main() { int N; http://www.cyberforum.ru/cpp-beginners/thread861341.html
Ошибка undefined reference C++
Вот такая функция: void InitFMOD(){ FMOD_RESULT result; FMOD::System *system; result = FMOD::System_Create(&system); // Create the main system object. if (result != FMOD_OK) { exit(-1); }
C++ Нахождение бесконечного ряда с точностью
Господа, снова я. Требуется написать программу для вычисления суммы бесконечного ряда с точностью ε=10-3 . Процес суммирования останавливается, как только |uk - uk-1|< ε. Где uk - текущий член ряда суммирования, а uk-1 - предидущий член ряда.
C++ Исправить программу http://www.cyberforum.ru/cpp-beginners/thread861321.html
Дана строка символов. Преобразовать строку, удалив из нее все символы, не являющиеся буквами или цифрами. #include <iostream> #include <Windows> #include <stdio.h> #include <ctype.h> using namespace std; void main() {
C++ Определить количество слов в тексте Привет!:) Помогите решить :-[ В тексте все слова разделены пробелами или знаками препинания. Определить количество слов этого текста, состоящих из одного, двух, трех и более слогов. Спасибо! :kissing: подробнее

Показать сообщение отдельно
Noreal
0 / 0 / 0
Регистрация: 12.04.2013
Сообщений: 43
11.05.2013, 12:35     дан код, не компилируется
Задано натуральное число k, символьный файл g и текстовый файл f. Файл g содержит 30 слов, каждое из которых будем называть ключевым. Сформировать файл ff, содержащий строки файла f, циклически сдвинутые так, чтобы каждое ключевое слово, которое входит в строку, начиналось с k-й позиции. Строки, не содержащие ключевых слов в файл ff не включаются.

Проблема в том,что жалуется на str.insert(0, k, ' ');

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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <fstream>
 
using namespace std;
 
//функция выдирает слова из строки и проверяет являются ли они ключевыми
//хотя это можно сделать и через строковые потоки
string::size_type testString(string &str, const vector<string> &vec)
{
    str.push_back(' ');
 
    for(size_t wordlen(0),i = 0; i != str.size(); i++) {
        if (isalpha(str[i]))
            ++wordlen;
        else {
            if (!wordlen)
                continue;
            if (str[i]=='-' && isalpha(str[i+1])) {
                ++wordlen;
                continue;
            }
            unsigned wordstart = i - wordlen;
            string word(str.substr(wordstart,wordlen));
            wordlen = 0;
 
            if ( find(vec.begin(), vec.end(), word) != vec.end() ) {
                str.resize(str.size() - 1);
                return wordstart;
            }
        }
    }
    return string::npos;
}
 
int main()
{
    setlocale(LC_CTYPE, "");
    ifstream strings("f.txt"), _words("g.txt");
    ofstream out_strings("ff.txt");
 
    if (!strings || !_words) return -1;
 
    unsigned k = 5;
    unsigned wordsCount(0);
 
    vector<string> words(100);
 
    while ( !_words.eof() ) {
        getline(_words, words[wordsCount]);
        ++wordsCount;
    }
 
    words.resize(wordsCount);
 
    _words.close();
 
    string str;
 
     while ( !strings.eof() ) {
        getline(strings, str);
        string::size_type pos = testString(str, words);
        if (pos == string::npos)
            continue;
        if (k > pos)
            str.insert(0, k, ' ');
        else if (pos - k > 0)
                str.erase(0, pos - k);
        out_strings << str << endl;
    }
    out_strings.close();
    strings.close();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru