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

Ввод из строкового потока - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
a91
 Аватар для a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
30.03.2012, 16:27     Ввод из строкового потока #1
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <strstream>
 
using namespace std;
 
struct point
{
       int x;
       int y;
};
 
strstream& operator >> (strstream& in, point& t)
{
           cin >> t.x;
           cin >> t.y;
           
           return in;
};
 
strstream& operator << (strstream& out, point& t)
{
    cin >> t.x;
    cin >> t.y;
    
    out << "x= " << t.x << ", y= " << t.y;
    
    return out;
};
 
int main()
{
    char* s  = new char [300];
    char* ss = new char [553];
    
    cout << sizeof(char*);
    
   
    point P;
    strstream Z(s, 300, ios::in | ios::out);
    int i;
    
    for(i=0; i < 5; i++)
    {
     Z << P;
     Z.getline(ss,55,'\0');
     cout << ss;
    }
    
 
    system("PAUSE");
    return 0;
    
}
Здравствуйте!

Программа работает.
Но никак не могу понять: почему первый раз значения точек x,y выдаются на экран
Например: x=2, y=3;
А потом, когда я ввожу координаты уже вывода не происходит.
А происходит только ввод координат.

Я перегружаю функции извлечения, и вставки в поток >>, <<
Для структурного типа point.

в operator << мы сами вводим координаты структуры. Это я так сделал для теста.
Главная проблема описана выше..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2012, 16:27     Ввод из строкового потока
Посмотрите здесь:

Ввод данных в объект string из потока C++
Флаг failbit для перенаправления строкового потока; почему он всегда у меня поднят? C++
C++ Как закончить ввод в итератор ввода для потока
Перевод потока из файлового ввода/вывода в консольный ввод/вывод C++
C++ Проверка строкового массива
C++ Вызывть метод одного потока из другого потока
Ввод строкового значения в командной строке Linux C++
Ввод данных в string, очистка потока ввода C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
30.03.2012, 17:31     Ввод из строкового потока #2
Цитата Сообщение от a91 Посмотреть сообщение
strstream& operator >> (strstream& in, point& t)
{
cin >> t.x;
cin >> t.y;
return in;
};
это что за ужас?
C++
1
2
3
4
5
6
7
istream& operator >> (istream& in, point& t)
{
    in >> t.x;
    in >> t.y;
 
    return in;
};
дальше даже не смотрел
Yandex
Объявления
30.03.2012, 17:31     Ввод из строкового потока
Ответ Создать тему
Опции темы

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