![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
hip |
|
||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 5.2.2007 Репутация: нет Всего: нет |
Здравствуйте! Мне нужно сделать программу, которая будет проверять верность цыфр в файле. Я Сделал, но проблема в том, что программа вместо четырех символов до пробела считует по одному символу.
Пробовал через getline(), но так выбивает непонятную ошибку.
Не знаю что делать, помогите пожалуйста. Добавлено @ 17:52 Русские символы вместо расширения это ошибка шрифта, тоесть в программе там вместо "вфе" dat, а "ышд" sol, это я ошибся когда вводил на форуме, в проге все нормально |
||||
|
|||||
ip127001 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 24.11.2006 Где: Omsk Репутация: -2 Всего: -1 |
![]() сторок что бы всем становилось понятно, что вы не шутите ![]() Добавлено @ 09:36 конкретней сформулиру задачу... что в начале, что в конце а то бошка болит, мочи нет в твоей кулебяке разбираться..проще самому написать --------------------
aqua currit et debere currere ut currere solebat |
|||
|
||||
hip |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 5.2.2007 Репутация: нет Всего: нет |
В общем есть файл в котором записано по 4 цыфры через пробел, например: 5673 3452 2673 1561 и т.д. Нужно чтоб программа находила в файле только определенные комбинации из 4 цыфр и помещала их в другой файл. Если использовать для условия if(), то не возможно компилировать так как не хватает памяти. Через switch() все получается, но программа вместо сразу четырех символов считывает по одному и сверяет с условием только одну цыфру, а в условии 4-ех значные цыфры и ничего не выходит. Что можно сделать? Через getline() тоже пробовал, но выбивает непонятную ошибку и компилировать не получается.
|
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Посмотрел на твой код...
1. main() должна возвращать int 2. после попытки открыть файл, надо проверить, открылся ли он вообще (if (!file) { ... }) 3. Каждый файл нужно закрывать после использования (file.close()) 4. зачем открывать файл для вывода в цикле? + см. пкт. 3. 5. чтобы сравнить kod с чем-нибудь, надо бы сначала прочитать в него что-нибудь (file >> kod) 6. kod объявлен как char, это одна буква (0<=char<255), а сравнивается он с чем? объяви kod как int 7. switch на несколько сотен цифр это изврат, если нельзя как-то вычислить эти числа, то хотя бы запиши их в массив и ищи в нём (лучше бинарно, быстрее будет) -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
nickless, ну это здесь не так уж и важно, так как при выходе из функции он закрывается. Это не так важно тут. Важно, если в пределах одной функции файл используется для ввода, потом для вывода. ИМХО
![]() |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Я чего-то этого не узрел file.open("SH.dat"); while (! file.eof()) { ofstream of; of.open("SHI.sol",ios::app); Вроде разные... nickless прав. Весь код выглядит несколько неправильным... |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Anikmar, что? Я теоретически говорил. Ну по-любому смысла закрывать особого тут нет (хотя бы потому что код бредовый какой-то) Хотя, если код длинный, мы читателю кода можем таким образом показать, что дальше файл не используется, или что-нибудь еще
![]() Это сообщение отредактировал(а) Xenon - 10.2.2007, 23:12 |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Xenon, да, в принципе файлы закроются при вызове деструктора, но всё равно нехорошо
![]() Да и нечего привыкать к плохому стилю, потом многих ошибок можно будет избежать, если всегда и везде (за исключением особых случаев) всё инициализировать, проверять, закрывать, освобождать... -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
nickless, Ну, в принципе, согласен с тобой (особенно после прочтения Саттера о 101 правиле). Но если проводить аналогию с объвлению всех переменных неизменяемых как const(15 совет у Саттера) , то закрытие файла после того, как он больше не понадобится необходимо для того, чтобы показать, что дальше файл не будет использоваться.
PS. Хотя аналогия такая ... шаткая ![]() |
|||
|
||||
БайкодромКосмодур |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 14.3.2007 Репутация: нет Всего: нет |
Я в программировании полный Лох. Приобрёл книжки, сижу изучаю и в принципе вопросов не возникает, но проблема в том, что необходима практика. Самому придумывать задачи не получается. Может, кто посоветует как быть, может, есть смысл пойти на курсы или на второе высшее.
|
|||
|
||||
Dimanc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 18.4.2007 Репутация: нет Всего: нет |
Решил изучить с++(изучал раньше паскаль). раздобыл книгу дейтела. а первая прога не компилируеться.
У меня bcb 6. расскажите, пожалуйста, подробно, как надо компилировать.(как я понял ошибка то ли в obj- файле, толи даже он не получаеться) Вот код программы хеллоу ворлд)
ps извините, если такой вопрос уже поднимали |
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
А потом, говори, что за ошибка. Потому как вряд ли из-за этого небольшого недочета вылезет ошибка obj. Это, скорее, что-то с IDE. Давай ошибку. Это сообщение отредактировал(а) mr.Anderson - 18.4.2007, 20:22 |
|||
|
||||
Dimanc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 18.4.2007 Репутация: нет Всего: нет |
то же самое, если просто main() |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
тебе нужно выбрать создание нового проекта и в нем выбрать тип "консольное приложение", а вообще советую взять поновее книгу. Судя по примеру у тебя что-то древнее
Сейчас модно писать такое так
Это сообщение отредактировал(а) Fazil6 - 18.4.2007, 23:04 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |