![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Кстате, работе с динамическими массивами не плохая статейка посвещена в FAQ этого раздела форума
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Gannibal |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 742 Регистрация: 15.4.2003 Где: 010101 Репутация: нет Всего: 17 |
да уж проблему у вас числа с фаила прочитать :/ ну иа ничего против неимеиу, ну вот если иа как пониал чсила друг wозле друга без пробелов так счто ето проблем или надо задать так штобы у тебиа ети числа были 4 местныэ например
-------------------- Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить! |
|||
|
||||
| DENNN |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Во-во. Лучще бы в FAQ пример с вектором загнали, а то людей с толку сбивают боьшие строчки кода.
Если каждый следующий БАЙТ в файле отдельное ЧИСЛО то так:
Если каждый БАЙТ ASCII символ цифры то самый простой (и самый ме-е-е-едленный) способ - это считать в буфер, к примеру CString
Для многомерных массивов алгоритм обобщиш сам (я надеюсь А вообще, конечно, надо это сделать на динамических массивах.Тогда этой прогой уже можно будет реально пользоваться. А в будущем формулируй вопросы точнее. |
||||||||
|
|||||||||
| aMiGo! |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 6.4.2003 Где: Тула Репутация: нет Всего: нет |
Я как-то тоже этим занимался, долго парился, но вот что получилось....
--------------------
With the best regards, Anton |
|||
|
||||
| kruchinin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.4.2003 Репутация: нет Всего: нет |
Во-первых, мой совет!
Все операции с файлами делай с помощью стандартных функций Win32 API. На опыте убедился, что именно у них отсутствуют ошибки и много возможностей, хотя иной раз их долго писать. А так: Если у тебя известны коды символов, то какие проблемы получить числа Код символа '0' - 48 То есть, получив код цифры ты просто вычитаешь из неё 48 и получаешь нужную цифру Посети мой сайт vidikon.by.ru |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Если еще вспомнить что в числе может быть -,+,.,e,E то не все так просто окажется.
|
|||
|
||||
| Drag |
|
|||
|
Unregistered |
А если нужно содрать всю строку в файле(с пробелами)?
Вот сдесь переменной sdata присваевается только то, что до первого пробела... ifstream file("gr.lst"); char cdata[2048]; CString sdata; file>>cdata; sdata = (LPSTR)cdata; file.close(); Как сделать что бы в sdata была вся строка с пробелами? |
|||
|
||||
| kruchinin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.4.2003 Репутация: нет Всего: нет |
методами fstream я не пользуюсь, но когда раньше пользовался то помню, что с такой проблемой сталкивался. Да, я её как-то решил (не помню как - было 3 года назад). С тех пор перешел на методы stdio.h
А уже после этого на стандартные методы WIN32 API - самые надежные методы для работы с вводом-выводом файлов (и тебе советую)! |
|||
|
||||
| Drag |
|
|||
|
Unregistered |
Пробовал я и так:
FILE *file; char* file_name = "gr.lst"; char load_string[2048]; CString string="Word" file = fopen( file_name, "r"); if( file != 0 ) { while(1) { fgets( load_string, 2048 , file ); sdata = (LPSTR)load_string; if(sdata==string) { AfxMessageBox(sdata); break; } } } else cout << "File not found !!!" << endl; fclose(file); При присутствии в файле строки "Word", не срабатывал почему то if(sdata==string). Даже когда обе переменные делал char, но в sdata запихивалась правда вся строка, даже с пробелами... Вот так вот... там одно, а там другое. |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
А ты точку останова поставь на строке if(sdata==string) и посмотри, что же сравнивается.
Не срабатываеттолько если операция == возвращает ЛОЖЬ. Это сообщение отредактировал(а) DENNN - 1.5.2003, 19:12 |
|||
|
||||
| Drag |
|
|||
|
Unregistered |
AfxMessageBox(sdata); выдаёт мне sdata каждой строки
Я думал мож портится string, поэтому и его тоже выводил Когда доходит до нужной строки, выпадают две таблички "Word"... одинаковые... почему if не проходит, не знаю............ |
|||
|
||||
| Drag |
|
|||
|
Unregistered |
Блин, от вас пока дождёшься, уже сам нашёл.
|
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Вот это правильно
|
|||
|
||||
| Molnienosetz |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 6.3.2003 Где: Россия, Королёв, комитетский лес Репутация: нет Всего: нет |
Не въехал, если каждый следующий байт, кроме \n\r - число (цифра), зачем нужна atoi? --------------------
"Вы только появились на форуме, но уже стали весьма популярны. Правда не как профессионал, а большой зазнайка."Это про меня! :) (В том смысле, что писалось не про меня.) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |