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

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

Войти
Регистрация
Восстановить пароль
 
romasimeiz
6 / 6 / 0
Регистрация: 11.04.2011
Сообщений: 260
#1

Запись данных и проверка в контейнере list - C++

02.04.2014, 13:36. Просмотров 357. Ответов 8
Метки нет (Все метки)

Добрый день!
Пытаюсь создать просто приложение на c++ в Win32 Application.
У меня есть несколько функций :
- первая должна проверять контейнер list на количество элементов меньше M (M=5).
- вторая должна считывать данные из *.txt файла и записывать их в лист используя :
C++
1
#include <fstream>
.

Функции и переменные объявил в header файле таким образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef int elem;
    typedef vector<elem> cont;
    typedef cont::const_iterator it;
   
    typedef short list_elem;
    typedef list<list_elem> MyList;
    typedef MyList::iterator iter;
 
    void Input( cont& c, int N, elem mn, elem mx );
    elem Process(MyList& listik, elem M );
    MyList FromFileToList (MyList& listik);
    extern elem Result;
    void PrintResults( HDC wdc, HWND wnd );
В файле *.cpp написал те самые две функции:

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
elem Process(MyList& listik, elem M )
{
    elem sum = 0;
    for( iter i = listik.begin(), e = listik.end(); i != e; ++i )
    {
        if( *i <= M )
            continue;
        sum += 1;
 
    }
 
    return sum;
}
 
elem Result = 0;
 
MyList FromFileToList (MyList& listik)
{    
    ifstream MyFile;
    MyFile.open("chisla.txt");
    while (MyFile.good())
    {
        getline(MyFile,listik);
    }
    return listik;
}
Вопрос 1 Функция FromFileToList не работает, потому что я неправильно пытаюсь записать туда данные. В текстовом файле находятся числа и сам list использует тип short. Как правильно записывать каждую строчку из файла?
Вопрос 2 Мой лист MyList должен использоваться один и тот же в обоих функциях. Т.е. когда я считал в него все числа из файла FromFileToList, он должен быть с теми же числами в функции проверки Process.
Правильно ли я передаю значения в функцию? Или функции будут работать с разными листами?

Простите за глупые вопросы, пытаюсь программировать второй день. Буду признателен за помощь! )
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
02.04.2014, 13:51     Запись данных и проверка в контейнере list #2
Цитата Сообщение от romasimeiz Посмотреть сообщение
FromFileToList
из ф-ции лист возвращать не надо, потому что Вы модифицируете входной параметр(входной лист)
в ф-ции мейн Вы создадите лист, его передадите в ф-цию. FromFileToList, он модицифируется
его же передадите в ф-цию Process да это будет один и тот же лист
romasimeiz
6 / 6 / 0
Регистрация: 11.04.2011
Сообщений: 260
02.04.2014, 14:05  [ТС]     Запись данных и проверка в контейнере list #3
спасибо! )
а как правильно добавлять считанные данные в лист?
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
02.04.2014, 15:36     Запись данных и проверка в контейнере list #4
эм....push_back() ?
romasimeiz
6 / 6 / 0
Регистрация: 11.04.2011
Сообщений: 260
02.04.2014, 16:01  [ТС]     Запись данных и проверка в контейнере list #5
например?
простите второй день пытаюсь программировать на c++.
Дело в том, что list типа short а из файла всё читается в формате string.
Писать в list нужно сначала через переменную, которую затем конвертировать в short или как ?
Заранее спасибо! )
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
02.04.2014, 16:14     Запись данных и проверка в контейнере list #6
C++
1
2
3
4
5
6
7
8
9
10
11
void FromFileToList (MyList& listik)
{    
    ifstream MyFile;
    MyFile.open("chisla.txt");
    short value = 0;
    while (!MyFile.eof)
    {
        //getline(MyFile,...);
        listik.push_back(value);
    }
}
насчет того как читать и переводить не подскажу, ибо сам в этом не смыслю
romasimeiz
6 / 6 / 0
Регистрация: 11.04.2011
Сообщений: 260
02.04.2014, 16:19  [ТС]     Запись данных и проверка в контейнере list #7
Большое спасибо )
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
02.04.2014, 16:25     Запись данных и проверка в контейнере list #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
void FromFileToList (MyList& listik)
{    
    ifstream MyFile;
    MyFile.open("1.txt");
    short Value = 0;
    while(!MyFile.eof())
    {
    MyFile>>Value;
    listik.push_back(Value);
     }
}
числа в файле
1
5
2
1
5
6
таким образом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 16:28     Запись данных и проверка в контейнере list
Еще ссылки по теме:
Циклическое отображение данных класса List C++
Сохранение данных пользовательского типа в list из stl C++
Ошибка при компиляции undefined reference to `List<int>::List()'| C++
C++ у меня созданы 2 фаила - один с классом (называется list.h), а другой с реализациями функций (list.cpp).
Записать в файл list (очередь) объектов, в которых содержатся строки string, и считать с файла обратно в list C++

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

Или воспользуйтесь поиском по форуму:
romasimeiz
6 / 6 / 0
Регистрация: 11.04.2011
Сообщений: 260
02.04.2014, 16:28  [ТС]     Запись данных и проверка в контейнере list #9
огромное спасибо )
Yandex
Объявления
02.04.2014, 16:28     Запись данных и проверка в контейнере list
Ответ Создать тему
Опции темы

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