| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Вопрос по филам |
| Автор: knut 13.6.2006, 14:36 |
| Привет вем. У меня тaкая задача. Мне нужно уже из полного фила создонного мнои запипесать в вектор содержимое фаила. В филе только инт числа. vector<int>vec, void Func(CFile *istream) { if((istream = fopen("aa.txt","rb")) == NULL) AfxMessageBox("Error") else { /// to rea and write in vector } } |
| Автор: pablo 13.6.2006, 15:17 | ||
Если числа от 0 до 9, то можно так, если нет, то надо бы узнать как они отделяются.
|
| Автор: MAKCim 13.6.2006, 17:55 | ||
|
| Автор: DeadSoul 13.6.2006, 23:04 |
| MAKCim, добавить к твоему примеру std::copy и цены нтебе не будет |
| Автор: SaDFromSpb 14.6.2006, 02:50 | ||
Вариации на тему:
|
| Автор: knut 14.6.2006, 11:41 |
| pablo 1.у менчя на этои строке выдает ошыбку если не трудно разясни. std::ifstream input(fileName); и обясни пожалуста почему в push_back e value - '0' спасибо. |
| Автор: MAKCim 14.6.2006, 11:48 | ||||
тебе надо символ, представляющий собой цифру, перевести в реальную цифру т к в ASCII таблице '0' имеет порядковый номер 48, а '9' - 57 то чтобы получить int-ый эквивалент char-а нужно ... - '0' или ... - 48 Добавлено @ 11:49
может чуть больше кода приведешь? |
| Автор: Любитель 14.6.2006, 12:24 |
| Наверно, нет инклюда fstream. |
| Автор: knut 14.6.2006, 12:30 |
MAKCim код такои. std::vector<int>vec; std::ifstream input("sergey.txt"); char value; while(!input.eof()) { input>>value; vec.push_back(value - '0'); } MAKCim скин пожалуста документацыю по филлам а точнее где можно прочeтать про (basic_ifstream,istreambuf_iterator). У Старауструпа и Кернигана нечего не нашел. Зарание спасибо. |
| Автор: Oleg_Ci 14.6.2006, 18:11 | ||
Что-то я проблемы ни какой не вижу. Разве нельзя вот-так:
|
| Автор: MAKCim 14.6.2006, 19:05 | ||||
у Кернигана понятно почему а у Страуструпа есть, лучше смотри
|
| Автор: knut 15.6.2006, 17:50 |
| MAKCim, Некак не могу разобрать эти строки istream_iterator<int>begin(stream),end(); for(;begin!=end;++begin) и почему у менчя такие ошыбки? вроде с инклудами все ок если конечно не затруднит отвть пожалуста спасибо. error C2065: 'istream_iterator' : undeclared identifier error C2062: type 'int' unexpected error C2065: 'begin' : undeclared identifier error C2065: 'end' : undeclared identifier error C2062: type 'int' unexpected error C2100: illegal indirection |
| Автор: SaDFromSpb 15.6.2006, 18:06 |
| knut, напиши using namespace std; сразу после инклудов. |
| Автор: MAKCim 15.6.2006, 21:01 | ||
как это поможет? файлы нужные включены, используется std:: |
| Автор: SaDFromSpb 15.6.2006, 21:50 |
| MAKCim, ну не поможет, так не поможет =). Мы же не видим его кода. |