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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2012, 18:20   #1
SaratovAreaNetwork
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию C++ Дан текстовый файл. Напечатать все строки, длина которых равна данному числу.

Посмотрите где ошибка?
В input.txt строку заканчиваю символом конца строки '\n'.
Код:
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main ()
{
	string::size_type a;
	string str;
	ifstream in("input.txt");
	ofstream out("output.txt");
	cout << "ввод значения переменной a" << endl;
	cin >> a;
	{
	while (in.peek()!=EOF)
		getline(in,str);
		if (a!=str.length())
			getline(in,str);
		else out << str;
	}
	out << str; //лишний
	in.close ();
	out.close ();
	return 0;
}
Заранее спасибо.

Последний раз редактировалось SaratovAreaNetwork; 18.04.2012 в 18:32.
SaratovAreaNetwork вне форума Ответить с цитированием
Старый 18.04.2012, 18:25   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

какой-то слишком мутный цикл, все можно сделать проще.

Код:
while (std::getline(in, str))
{
    if (str.size() == a)
        std::cout << str << std::endl;
}
Rififi вне форума Ответить с цитированием
Старый 18.04.2012, 18:35   #3
SaratovAreaNetwork
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
какой-то слишком мутный цикл, все можно сделать проще.

Код:
while (std::getline(in, str))
{
    if (str.size() == a)
        std::cout << str << std::endl;
}
Этот должен выводить на экран, да? Что-то у меня не работает.. Ввожу число 'a' и программа молчит.
SaratovAreaNetwork вне форума Ответить с цитированием
Старый 18.04.2012, 18:50   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

SaratovAreaNetwork

Этот должен выводить на экран, да?

Да. Но точно также можно вывести в любой поток, в том числе и файловый.

Ввожу число 'a' и программа молчит.

ХЗ
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать текстовый файл, строки которого содержат целые числа. Обработать файл следующим образом: напечатать все отрицательные числ Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 3 29.02.2012 17:30
Создать текстовый файл, строки которого содержат целые числа. Обработать файл следующим образом: напечатать все отрицательные... Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 2 08.02.2012 19:23
Программа, которая выводит на экран все четырехзначные числа, сумма цифр которых равна 7 vitaaly Паскаль, Turbo Pascal, PascalABC.NET 3 06.02.2012 15:46
Дан текстовый файл с именем NameT ek1ipse Помощь студентам 3 03.05.2011 11:43
определить все двузначные числа сумма квадратов цифр которых кратна числу 15 [Pascal] mrRastom Помощь студентам 5 16.12.2010 09:47