C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Манипуляторы fstream
Lom
Отправлено: 23.09.2005, 21:05


Ученик-кочегар

Группа: Участник
Сообщений: 13



Здраствуйте.
У меня возникла непонятка с таким вот кодом:
CODE

#include <fstream>
#include <iomanip>
...
char s[70];
fstream file;
file.open(NameFile.c_str(), ios::in);

f >> setw(70) >> s;  //здесь проблема
...

Я предполагал, что с таким манипулятором (setw(70)) я прочитаю ровно 70 символов в массив s. А на самом деле читается только до первого пробела.
Подскажите пожалуйста в чем моя ошибка.
Как считать заданное количество символов?
Георгий
Отправлено: 24.09.2005, 23:31


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



а оно вроде бы только на вывох действует.
для ввода используйте методы getline или read
Lom
Отправлено: 25.09.2005, 00:06


Ученик-кочегар

Группа: Участник
Сообщений: 13



Спасибо. Как обойтись без setw я разобрался.
Но вот табличка в хелпе
QUOTE

Manipulator      Use           Effect        Equivalent
...
setw(int n)        io         Sets minimal field width         io.width(n)
...

(io) говорит о том, что манипулятор действует как на вход так и на выход.
Значит либо ошибка в хелпе, либо я чего-то не догоняю.

Отредактировано Lom — 25/09/2005, 00:08

Вернуться в Вопросы программирования в C++Builder