![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
PunkRat |
|
|||
Unregistered |
Помогите пожалуйста, кому не ленm
![]() |
|||
|
||||
Kefir |
|
|||
Unregistered |
ну, если числа через пробелы, то:
fstream file; int numb[100]; file.open("file.txt", ios::in); for(int a=0; a< /*кол-во чисел*/ ; a++) { file>>numb[a]; } если же у тебя определённый метод записи, то просто считываешь весь файл в, допустим, CString, а потом выбираешь оттуда числа. |
|||
|
||||
PunkRat |
|
|||
Unregistered |
Спасибо Кефир! ![]() |
|||
|
||||
Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Так числа или цифры.
Если числа, то какие между ними будут разгранечители, как понять, где закончилась одно число, и началось другое -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
Kefir |
|
|||
Unregistered |
да уж, ты определись пожалуйста числа у тебя или цифры, если просто цифры, то считываешь весь файл в массив переменных, и тогда в каждом эл-те массива будет каждая цифра (ну, ещё с переходом на новую строку повозиться, но это уже мелочи)
|
|||
|
||||
Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Так числа или цифры.
Если числа, то какие между ними будут разгранечители, как понять, где закончилась одно число, и началось другое? -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
Угу правильно, но можно еще использовать числа с фиксированным количеством знаков с впередистоящими нулями...
(Хотя может он действительно путает числа и цифры) если матрица то все строки скорее всего одинаковой длины и количество столбцов тоже одинаковое и это упрощает дело... Как Kefir предложил используем класс основанный на String
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
Кстати просьба к тем кто работал с многомерными массивами проверьте плиз правильно ли я объявляю границы массива и подставляю индексы... а то справка билдера по new меня несколько смутила... то они под строки индекс j использовали то под столбцы...
руки бы им оторвать по самые уши... ![]() --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
билдерец |
|
|||
Unregistered |
справка билдера-отдельная статья. Тем кто ее писал надо присвоить дворянство, чтобы они назывались деБилдеры!
|
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
напиши что-нибудь лучше, тогда и говори так.... -------------------- |
|||
|
||||
Kefir |
|
|||
Unregistered |
HexoGenus, если тебе нужна справка про new, то посмотри в MSDN, я более чем уверен что там про это есть. А если уж там плохо написано, то вряд ли кто лучше объяснит...
|
|||
|
||||
PunkRat |
|
|||
Unregistered |
Спасибо вам за ваши ответы!
![]() |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
А как же '\0'? Хоть он и в конце, но всё же существует
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
HexoGenus |
|
||||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
Хммм... да не справка по new мне нужна а простая практика с многомерными массивами ... Не приходилось как то до этого динамически их создавать... Для школьных задачек обычно их размер можно определить заранее, а в программах которые пишу как-то необходимости не было.. вот и попросил проверить Вас надеясь что вы с этим работали и с одного взгляда обнаружите возможную ошибку...
Ну вот и я теперь не только могу динамически создавать многомерные массивы но и понимаю как это работает... ![]() Кстати проверил в предыдущем коде там все индексы раставлены правильно... Жаль не пригодится... ![]() --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
||||
|
|||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
о господи!!!HexoGenus, да перейди ты наконец на std::vector
это куда удобнее, чем массив указателей. |
|||
|
||||
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. |