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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Shato
2 / 2 / 0
Регистрация: 16.03.2011
Сообщений: 82
#1

Файловые потоки - C++

20.03.2011, 22:25. Просмотров 1618. Ответов 9
Метки нет (Все метки)

1 задача) Дан текстовый файл. Напечатать все строки, в которых имеется хотя бы один пробел.
2 задача) Дан файл f, элементами которого являются символы. Переписать в файл g все цифры файла f, а в файл h - все остальные символы файла f.

Если у кого нибудь найдется лишняя минутка, уделите пожалуйста, буду признателен! Не сочтите за наглость.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2011, 22:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файловые потоки (C++):

Файловые потоки - C++
Структура enum status {Boss=1, Manager}; struct Worker { string Name; int Year; ...

файловые потоки - C++
Помогите найти ошибку! Программа из книги Дейтелов!Не понимаю что я пропустил .. ------ Построение начато: проект: potok,...

Файловые потоки в Си и С++ - C++
Вот код. Нужно использовать чтение из файла и запись в файл, такое же как и в языке СИ (без использования библиотек которых нет в СИ). Я...

Файловые потоки - C++
Компилятор ругается при создании экземпляра класса ofstream. Среда разработки - Visual C++ 2008. Выдает error C2079: 'fileout' uses...

Файловые потоки - C++
Для каждого автобуса автопарка укажите его номер, маршрут, фамилию и инициалы шофера, время в пути. Предусмотреть поиск по фамилии шофера.

Файловые потоки и функции - C++
Скажите пожалуйста, как передать файловый поток в функцию?

9
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
20.03.2011, 22:38 #2
Цитата Сообщение от Shato Посмотреть сообщение
1 задача) Дан текстовый файл. Напечатать все строки, в которых имеется хотя бы один пробел.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <fstream>
 
int main(){
  std::ifstream f_in("INPUT.TXT");
  while(!f_in.eof()){
    std::string buf;
    getline(f_in, buf);
    if( std::count(buf.begin(), buf.end(), ' ') )
      std::cout << buf << '\n';
  }
  return 0;
}
1
Shato
2 / 2 / 0
Регистрация: 16.03.2011
Сообщений: 82
20.03.2011, 22:55  [ТС] #3
Спасибо большое! И вторую задачку сделайте пожалуйста, если не сложно!
0
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
20.03.2011, 23:20 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <fstream>
#include <string>
#include <iterator>
 
int main()
    {
    std::ifstream inf("f");
    std::ofstream out_1("g"), out_2("h");
 
    std::string conts((std::istream_iterator<char>(inf)),std::istream_iterator<char>());
 
    for(std::string::iterator i = conts.begin();  i != conts.end(); ++i)
        if(isdigit(*i))
            out_1 << *i;
        else
            out_2 << *i;
 
    out_1.close();
    out_2.close();
    }
1
Shato
2 / 2 / 0
Регистрация: 16.03.2011
Сообщений: 82
20.03.2011, 23:33  [ТС] #5
Извините за тупые вопросы. Что такое iterator и можно ли написать эту же программу без его использования?
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
20.03.2011, 23:35 #6
Цитата Сообщение от Shato Посмотреть сообщение
Что такое iterator
http://www.cplusplus.com/reference/std/iterator/
Цитата Сообщение от Shato Посмотреть сообщение
и можно ли написать эту же программу без его использования?
Да можно.
1
Shato
2 / 2 / 0
Регистрация: 16.03.2011
Сообщений: 82
20.03.2011, 23:47  [ТС] #7
Без использования итератора можете сделать? Если не сложно.
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
21.03.2011, 00:00 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <fstream>
#include <string>
#include <iterator>
 
int main()
        {
        std::ifstream inf("f");
        std::ofstream out_1("g"), out_2("h");
 
        std::string conts((std::istream_iterator<char>(inf)),std::istream_iterator<char>());
 
        for(size_t i = 0;  i < conts.size(); ++i)
                if(isdigit(conts[i]))
                        out_1 << conts[i];
                else
                        out_2 << conts[i];
 
        out_1.close();
        out_2.close();
        }
1
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
21.03.2011, 00:16 #9
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
   std::ifstream inFile("input.txt");
   std::string s;
 
   while( !inFile.eof() )
   {
      std::getline(inFile, s);
      if(s.find(' ') != std::string::npos)
     std::cout << s << '\n';
   }
 
   inFile.close();
   
   return 0;
}
2.
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 <fstream>
#include <cctype>
 
int main()
{
   std::ifstream inFile("f");
   std::ofstream outFile1("g");
   std::ofstream outFile2("h");   
 
   char ch;
   while( inFile.get(ch) )
   {      
      if( isdigit(ch) )
     outFile1.put(ch);
      else
     outFile2.put(ch);
   }
 
   inFile.close();
   outFile1.close();
   outFile2.close();
 
   return 0;
}
1
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.03.2011, 10:40 #10
Цитата Сообщение от rangerx
C++
1
while( !inFile.eof() )
бесконечный цикл при ошибке чтения

C++
1
while (std::getline(inFile, s))
0
21.03.2011, 10:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2011, 10:40
Привет! Вот еще темы с ответами:

Файловые потоки данных - C++
Помогите, пожалуйста! Надо написать программу, которая считывает из файла строки и сохраняет их в другой файл в обратном порядке. Я...

Бинарные файловые потоки - C++
Нужно написать две функции, одна из них сохраняет перечень в бинарный файл, другая считает данные из этого же бинарного файла. Читал про...

Файловые указатели. Потоки - C++
Вот какой вопрос у меня появился. Пусть есть 2 указателя, связанных с одним и тем же файлом открытым в режиме read. Если я считываю...

Бинарные файловые потоки - C++
Существует ли стандартный вариант? Как обозван тип такого потока для записи? Для чтения? Чтоб бинарники писать операторами типа so&lt;&lt;d; (so...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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