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

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

Войти
Регистрация
Восстановить пароль
 
MGOU
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 12
#1

Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) - C++

10.06.2013, 00:28. Просмотров 775. Ответов 14
Метки нет (Все метки)

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
#include <iostream>
#include <set>
#include <iterator>
#include <fstream>
#include <string>
#include <algorithm>
 
int main()
{
    std::fstream ifs("in.txt", std::ios::in), ofs("out.txt", std::ios::out);
    if(ifs.is_open() && ofs.is_open())
    {
        std::multiset<std::string, bool(*)(std::string const&, std::string const&)> mset([](std::string const& str1, std::string const& str2){return str1.size() < str2.size();});
        std::string str;
        while(std::getline(ifs, str))
            mset.insert(str);
        std::copy(mset.begin(), mset.end(), std::ostream_iterator<std::string>(ofs, "\n"));
        ofs.close();
        ifs.close();
    }
    else
        std::cerr << "Unable to open file(s)\n";
    return 0;
}
вылазят ошибки

Error 1 error C3409: empty attribute block is not allowed c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 2 error C2059: syntax error : '(' c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 3 error C2143: syntax error : missing ')' before '{' c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 4 error C2059: syntax error : ')' c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 5 error C2143: syntax error : missing ')' before '{' c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 6 error C2143: syntax error : missing ';' before ')' c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 7 error C2143: syntax error : missing ';' before '{' c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 8 error C2065: 'str1' : undeclared identifier c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 9 error C2228: left of '.size' must have class/struct/union c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 10 error C2065: 'str2' : undeclared identifier c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 11 error C2228: left of '.size' must have class/struct/union c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 12 error C2059: syntax error : ')' c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 17 22
Error 13 error C2228: left of '.insert' must have class/struct/union c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 20 22
Error 14 error C2228: left of '.begin' must have class/struct/union c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 21 22
Error 15 error C2228: left of '.end' must have class/struct/union c:\users\тимофей\documents\visual studio 2008\projects\22\22\22.cpp 21 22
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 00:28     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки)
Посмотрите здесь:

Записать в вектор строки разной длины из файла - C++
Всем добрый день, ситуация следующая: не могу записать в вектор строки разной длины из файла допустим есть файл под названием first.txt...

Как отсортировать строки файла в порядке возрастания их длины - C++
Помогите решить задачу!!!!!! Дан файл со строками, отсортировать строки в порядке возрастания их длины

Переписать в выходную строку слова из входной строки в порядке возрастания их длины - C++
.Пожалуйста помогите решить задачу Срочно нужно было Переписать в выходную строку слова из входной строки в порядке возрастания их...

Переписать в выходную строку слова из входной строки в порядке возрастания их длины. - C++
Помогите с решенеие кому не сложно в Visual C++, пожалуйста. 1. Интервал между минимальным и максимальным значениями элементов...

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

Вывести слова строки в порядке убывания длины - C++
требуется написать программу которая: -считает количество слов в предложении -выводит слова строки в порядке убывания ее длины ...

Расположить слова порядке возрастания их длины - C++
Дана строка символов. Расположить их в порядке возрастания длины слова. Дайте хелпу ребятки;)

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.06.2013, 00:30     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #2
MGOU, все верно. Видимо, Вы не используете компилятор с новым стандартом С++11.
MGOU
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 12
10.06.2013, 01:07  [ТС]     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #3
Цитата Сообщение от BumerangSP Посмотреть сообщение
MGOU, все верно. Видимо, Вы не используете компилятор с новым стандартом С++11.
возможно ли сделать для обычной C++ 2008 года?завтра(то есть сегодня уже сдавать)

Добавлено через 15 минут
Цитата Сообщение от BumerangSP Посмотреть сообщение
MGOU, все верно. Видимо, Вы не используете компилятор с новым стандартом С++11.
ну вот например ещё нашёл на этом форуме программу она вроде как написана на c++, всё проходит без ошибок, но в файл g.txt вообще ничего не выводит

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
#include <algorithm>
#include <functional>
#include <iterator>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
 
class by_length_string_copmarer : 
    public std::binary_function<std::string, std::string, bool>
{
public:
    bool operator () (const std::string& s1, const std::string& s2)
    {
        return s1.length() < s2.length();
    }
};
 
bool sort_and_copy(const char *src, const char *dst)
{
    std::vector<std::string> vec;
    std::ifstream ifs(src);
    if (!ifs.is_open())
        return false;
    char ch;
    while (!ifs.eof())
    {
        std::ostringstream outs;
        while (!ifs.eof())
        {
            ch = ifs.get();
            if (ch != EOF)
            {
                outs << ch;
                if (ch == '.' || ch == '!' || ch == '?')
                    break;
            }
        }
        vec.push_back(outs.str());
    }
    ifs.close();
    std::ofstream ofs(dst);
    if (!ofs.is_open())
        return false;
    std::sort(vec.begin(), vec.end(), by_length_string_copmarer());
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(ofs, "\r\n"));
    return true;
}
 
int main()
{
    return !sort_and_copy("D:\\f.txt", "D:\\g.txt");
}
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.06.2013, 01:10     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #4
MGOU, проще выложить задание, возможно, ее больше захотят с нуля написать.
__guest__
Заблокирован
10.06.2013, 01:13     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #5
твой код из #1поста + компилятор mingw + опция std=c++11 = счастье

Добавлено через 1 минуту

Не по теме:

и какой же там фак ненужности

MGOU
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 12
10.06.2013, 01:32  [ТС]     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #6
Цитата Сообщение от BumerangSP Посмотреть сообщение
MGOU, проще выложить задание, возможно, ее больше захотят с нуля написать.
вот само задание

Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки.

Добавлено через 1 минуту
Цитата Сообщение от __guest__ Посмотреть сообщение
твой код из #1поста + компилятор mingw + опция std=c++11 = счастье

Добавлено через 1 минуту

Не по теме:

и какой же там фак ненужности

а где эту опцию найти c++11?
__guest__
Заблокирован
10.06.2013, 01:36     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #7
Цитата Сообщение от MGOU Посмотреть сообщение
а где эту опцию найти c++11?
Цитата Сообщение от __guest__ Посмотреть сообщение
твой код из #1поста + компилятор mingw + опция std=c++11 = счастье
ну давай будем учиться понимать йазэг математеги

Добавлено через 41 секунду
A+B+C=D -- D естьрезультат
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
10.06.2013, 01:52     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #8
MGOU, переписал под C++03. Пробуйте...
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <set>
#include <iterator>
#include <fstream>
#include <string>
#include <algorithm>
 
struct comp 
{
    bool operator () (const std::string &a, const std::string &b)
    { return a.size() < b.size(); }
};
 
int main()
{
    std::fstream ifs("in.txt", std::ios::in), ofs("out.txt", std::ios::out);
    if (ifs.is_open() && ofs.is_open()) {
        std::multiset<std::string, comp> mset;
        std::string str;
        while(std::getline(ifs, str))
            mset.insert(str);
        std::copy(mset.begin(), mset.end(), std::ostream_iterator<std::string>(ofs, "\n"));
        ofs.close();
        ifs.close();
    } else
        std::cerr << "Unable to open file(s)\n";
    return 0;
}


Добавлено через 2 минуты
MGOU,
и строку
C++
1
std::multiset<std::string, bool(*)(std::string const&, std::string const&)> mset([](std::string const& str1, std::string const& str2){return str1.size() < str2.size();});
можно записать попроще, вот так:
C++
1
2
auto comp = [](std::string const& str1, std::string const& str2){return str1.size() < str2.size();};
std::multiset<std::string, decltype(comp)> mset(comp);
__guest__
Заблокирован
10.06.2013, 01:56     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #9
ПРОДОЛЖАЙ!!! MSVC твой верный товарищ!!!
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.06.2013, 02:04     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #10
Ну, еще вот с вектором.
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
#include <iostream>
#include <vector>
#include <iterator>
#include <fstream>
#include <string>
#include <algorithm>
 
bool length(const std::string &str1, const std::string &str2)
{
    return str1.size() < str2.size();
}
 
int main()
{
    std::fstream ifs("in.txt", std::ios::in), ofs("out.txt", std::ios::out);
    if(ifs.is_open() && ofs.is_open())
    {
        std::vector<std::string> strings;
        std::string str;
        while(!ifs.eof())
        {
            std::getline(ifs, str);
            strings.push_back(str);
        }
        std::sort(strings.begin(), strings.end(), length);
        std::copy(strings.begin(), strings.end(), std::ostream_iterator<std::string>(ofs, "\n"));
        ofs.close();
        ifs.close();
    }
    else
        std::cerr << "Unable to open file(s)\n";
}
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,049
10.06.2013, 02:21     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #11
BumerangSP, использовать вектор с единственной целью - отсортировать и вывести на экран нерационально. Тут multiset само напрашивается.
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
10.06.2013, 02:26     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #12
MrGluck, угу, ну, пусть буде как вариант, с set ведь уже есть
__guest__
Заблокирован
10.06.2013, 03:08     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #13
Цитата Сообщение от MrGluck Посмотреть сообщение
использовать вектор с единственной целью - отсортировать и вывести на экран нерационально. Тут multiset само напрашивается
Туту подразумевается псевдойазык и псевдоконструкции. Не выше
MGOU
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 12
10.06.2013, 03:15  [ТС]     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #14
ребят всем огромное спасибо!!!

у меня последний вопрос, куда ложить файл in.txt?а то у меня Unable to open file(s)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2013, 03:18     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки)
Еще ссылки по теме:

Упорядочить слова в порядке возрастания их длины - C++
Дано предложение, слова в нем разделены пробелом. Упорядочить слова в порядке возрастания их длины.

Записать в выходной файл все строки входного файла - C++
Помогите пожалуйста, через три дня сдавать. буду очень благодарен=) Дан входной текстовый файл, строка S (вводится с клавиатуры)....

Дана строка, вывести слова наименьшей длины в порядке возрастания - C++
Здравствуйте! Помогите, пожалуйста, с программой: дана строка, вывести слова наименьшей длины в порядке возрастания.

Какие методы класса fstream отвечают за определение количества строк в файле и длины строки? - C++
Привет всем. Знакомлюсь я тут с потоковым файловым вводом-выводом, скажите пожалуйста, какие методы класса fstream, отвечают за определение...

Переписать в новый файл строки по возрастанию длины - C++
Переписать из файла f1 (содержащего строки разной длинны) строки по возрастанию длинны в файл f2. Запуталась с циклами конкретно :( ...


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,049
10.06.2013, 03:18     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки) #15
MGOU, если VS - в папку с проектом
Yandex
Объявления
10.06.2013, 03:18     Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки)
Ответ Создать тему
Опции темы

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