Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2015, 13:42   #1
whoami30
Пользователь
 
Регистрация: 08.12.2015
Сообщений: 14
По умолчанию Вывод текста из вектора.

Доброе время суток, программе необходимо считать теоретический материал из файла в вектор и по нажатию определенной клавиши выдавать порциями материал(т.е. постранично). Как реализовать постраничный вывод? Допустим по 20-30 строк?
Код:
#include<iostream>
#include<vector>
#include<fstream>
#include<string>
using namespace std;
int main()
{
	
    setlocale(0,"rus");
    char name[]="teoria.txt";
	 vector<string> v;
	string str;;
    ifstream fout(name);
    if (!fout)
    {
        cout<<"Файл с исходными данными не найдет /n Создайте файл с именем "
            <<name<<endl;
        
    }
    else
    {	
		while(fout>>str)
		{
			v.push_back(str);
		}
    }

    system ("pause");
    return 0;
}
whoami30 вне форума Ответить с цитированием
Старый 08.12.2015, 18:31   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как реализовать постраничный вывод? Допустим по 20-30 строк?
Код:
vector<string>::iterator vi;
int i=1;
for(vi=s.begin();vi!=s.end();vi++,i++){
   cout<<*vi<<'\n'; 
   if(i%20) system ("pause");
}
Годится идея?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.12.2015, 20:39   #3
whoami30
Пользователь
 
Регистрация: 08.12.2015
Сообщений: 14
По умолчанию

Да, как реализую скину итог.

if(i%20) - не пойму какую функцию выполняет это условия, т.к. при изменение значений, результат не меняется....Выводит по одной строчке или весь текст целеком

Последний раз редактировалось whoami30; 09.12.2015 в 10:46.
whoami30 вне форума Ответить с цитированием
Старый 09.12.2015, 10:14   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Напиши if(!(i%20))
Это отсчет количества выведенных строк в порции.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2015, 10:37   #5
whoami30
Пользователь
 
Регистрация: 08.12.2015
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Напиши if(!(i%20))
Это отсчет количества выведенных строк в порции.
Код:
#include<iostream>
#include<vector>
#include<fstream>
#include<string>
using namespace std;

int main()
{
	
    setlocale(0,"rus");
    char name[]="teoria.txt";
	vector<string> v;
	string str;
	int n=10; 
    ifstream fout(name);
    if (!fout)
    {
        cout<<"Файл с исходными данными не найдет \n Создайте файл с именем "<<name<<endl;
    }
    else
    {	
		while(!fout.eof())
		{
			getline(fout,str);
			v.push_back(str);
		}
    }
	vector<string>::iterator vi;
	int i=1;
	for(vi=v.begin();vi!=v.end();vi++)
	{
		
		cout<<*vi<<'\n';
		if(!(i%20))
		system ("pause");
	}
    system ("pause");
    return 0;
}
Итог: выводит весь текст
whoami30 вне форума Ответить с цитированием
Старый 09.12.2015, 10:51   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты упустил i++ из моего примера )
Будь внимательнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2015, 11:11   #7
whoami30
Пользователь
 
Регистрация: 08.12.2015
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ты упустил i++ из моего примера )
Будь внимательнее.
Да, есть такой грешок за мной. Спасибо.
Как и обещал, работающая программа
Код:
#include<iostream>
#include<vector>
#include<fstream>
#include<string>
using namespace std;

int main()
{
	
    setlocale(0,"rus");
    char name[]="teoria.txt";
	vector<string> v;
	string str;
	int n=10; 
    ifstream fout(name);
    if (!fout)
    {
        cout<<"Файл с исходными данными не найдет \n Создайте файл с именем "<<name<<endl;
    }
    else
    {	
		while(!fout.eof())
		{
			getline(fout,str);
			v.push_back(str);
		}
    }
	vector<string>::iterator vi;
	int i=1;
	for(vi=v.begin();vi!=v.end();vi++,i++)
	{
		
		cout<<*vi<<'\n';
		if(!(i%10))
		{
		system ("pause");
		system ("cls");
		}
	}
    system ("pause");
    return 0;
}
whoami30 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод вектора в Memo Sumy-ua C++ Builder 4 13.05.2013 15:10
Вывод вектора из строки матрицы trad Помощь студентам 0 17.02.2011 20:33
Не получается реализовать вывод содержимого вектора класса на экран Progsenya Общие вопросы C/C++ 4 09.09.2010 21:38
Заполнение вектора и вывод значений элемента Владюшка Помощь студентам 5 27.01.2010 13:53
Вывод содержимого вектора на экран lelik759 Помощь студентам 1 05.11.2009 00:07