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

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

Войти
Регистрация
Восстановить пароль
 
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

потоки - C++

11.02.2011, 16:37. Просмотров 833. Ответов 5
Метки нет (Все метки)

1----------------------------------------------------------------------------------------------------------
Можно ли перенаправить потоки cin/cout для ввода/вывода из файла?
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
25
26
27
28
29
30
31
32
33
#include <fstream>
#include <iostream>
 
using namespace std;
 
int main()
{
   fstream file;
   file.open( "input.dat" );
   short   B;
   file >> B;
   for (short i = 0; i < B; i++)
   {
      short   P;
      file >> P;
      
      for (short j = 0; j < P; j++)
      {
            short a, b;
            file >> a >> b;
            cout << a << " " << b << endl;
      }
      
      for (short j = 0; j < P; j++)
      {
            short a, b;
            file >> a >> b;
            cout << a << " " << b << endl;
      }
   }
 
   return 0;
}
не работает так, как нужно, например, для файла:
2
2
1 1
3 5
4 10
2 2
1
1 1
2 2

???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2011, 16:37     потоки
Посмотрите здесь:

Потоки с++ C++
потоки.. C++
Потоки C++
Потоки C++
Потоки C++
C++ Потоки
C++ VC, потоки.
Потоки C++
Потоки C++
C++ Потоки
C++ Потоки
C++ Потоки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1634 / 1262 / 128
Регистрация: 21.12.2010
Сообщений: 1,925
Записей в блоге: 7
11.02.2011, 17:21     потоки #2
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>
using namespace std;
 
int main(){
    fstream fs("text.txt", ios::out);
    streambuf *fbuf=fs.rdbuf();
    streambuf *sbuf=cout.rdbuf(fbuf);
    cout<<"Into file";
    cout.rdbuf(sbuf);
    fs.close();
    fs.open("text.txt");
    fbuf=fs.rdbuf();
    sbuf=cin.rdbuf(fbuf);
    string s;
    getline(cin, s);
    cin.rdbuf(sbuf);
    fs.close();
    cout<<s;
}
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
11.02.2011, 17:29     потоки #3
1. Возможно также через freopen соответствующим перенаправлением stdin,stdout

C++
1
2
3
freopen("in.txt","w",stdout);
cout << "bla-bla";
cout.flush();
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
11.02.2011, 22:36  [ТС]     потоки #4
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
#include <fstream>
#include <iostream>
 
using namespace std;
 
int main()
{
   fstream file;
   file.open( "input.dat" );
   short   B;
   file >> B;
   for (short i = 0; i < B; i++)
   {
      short   P;
      file >> P;
      
      for (short j = 0; j < P; j++)
      {
            short a, b;
            file >> a >> b;
            cout << a << " " << b << endl;
      }
      
      for (short j = 0; j < P; j++)
      {
            short a, b;
            file >> a >> b;
            cout << a << " " << b << endl;
      }
   }
 
   return 0;
}
почему не работает как нужно?
dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
11.02.2011, 22:59     потоки #5
Цитата Сообщение от Mayonez Посмотреть сообщение
1----------------------------------------------------------------------------------------------------------
Можно ли перенаправить потоки cin/cout для ввода/вывода из файла?
Я так делаю
C++
1
2
3
4
5
6
7
#include <fstream>
int main()
{
      ifstream cin("filename");
      ofstream cout("filename");
      return 0;
}
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
11.02.2011, 23:13     потоки #6
aram_gyumri, это не перенаправление, просто локальные потоки будут маскировать глобальные
Yandex
Объявления
11.02.2011, 23:13     потоки
Ответ Создать тему
Опции темы

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