| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [С/С++] работа с файлами |
| Автор: elllektra 17.5.2007, 13:22 |
| для контрольной не могу решить последние 3 задачки. Сдать нужно послезавтра, тему с файлами плоховато понимаю( В файле f записаны числа. Получить в файле g положительные числа в файле и сумму отрицательных чисел файла f |
| Автор: Anikmar 17.5.2007, 18:06 | ||
Можно так:
|
| Автор: Xenon 17.5.2007, 19:27 | ||
Можно вот так более С++`сно
|
| Автор: Anikmar 17.5.2007, 20:51 | ||
Xenon, у вас нет проверки, что входной файл изначально пуст:
И что будет в итоге происходить при ошибках открытия файлов? По идее надо закончить программу при этом. |
| Автор: Xenon 17.5.2007, 21:27 | ||
Anikmar, это чертовы глюки ... забыл return вставить
А вот со вторым замечанием - а что ты предлагаешь? Проверять на то, что там '\n' и все? или '\0'? И у тебя это разве учитывается? И зачем это нужно? |
| Автор: GIK 18.5.2007, 22:43 | ||||
| Anikmar, Xenon, Я дико извиняюсь, и нехочу быть невежой, но я несмог с помощью Ваших примеров осуществить задачу... Вот кое-что набросал, работает корректно, если определть зазделители между числами символом "," и конец файла символом "." Так примерно должен выглядеть файл: -12,45,45,-4,-1234,-233. Код:
Добавлено через 7 минут и 13 секунд Вариант с выбором разделителя и конца файла:
|
| Автор: Anikmar 18.5.2007, 23:27 | ||
Перед тем как выложить на форум, я свой код проверил. Работает. Так что я не понимаю, почему вы не смогли осуществить задачу... |
| Автор: Xenon 18.5.2007, 23:32 |
| Мой код тоже работает. Не очень понимаю в чем, собственно, неосуществление Добавлено через 1 минуту и 54 секунды Но у тебя алгоритм какой-то адский ... если я привел почти С++ вариант, а Anikmar чисто C, то у тебя чего-то ... непонятное |
| Автор: GIK 19.5.2007, 11:05 | ||
Согласен, код зверский, писал с бодуна
|
| Автор: Xenon 19.5.2007, 14:11 | ||
| GIK, Господи ... а прочитать до ',' в некий массив символов и воспользоваться atoi нельзя что ли? А чем тебе eof не нравится? 46 строчку на if( file.eof() ) break; и все окей будет Ну если идти по принципу велосипедов, я бы конвертировал так
PS. Не нравится string - спокойно на char* поменять можно и size() на std::strlen() |