22.05.2019, 18:59 [+3 UTC]
в нашей команде: 3 633 чел. | участники онлайн: 4 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.75 (18.05.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
16.05.2019, 21:07

Последний вопрос:
22.05.2019, 16:35
Всего: 149679

Последний ответ:
22.05.2019, 16:58
Всего: 258509

Последняя рассылка:
22.05.2019, 16:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
29.05.2011, 11:36 »
Ольга Дмитриевна
Огромное спасибо!!! [вопрос № 183334, ответ № 267359]
06.05.2011, 19:59 »
Иванов Анатолий Николаевич
Благодарю за оперативность! [вопрос № 183072, ответ № 267014]
02.07.2010, 11:24 »
Dimon4ik
Большое спасибо. Помогло отключение отдельных программ в автозагрузке. Таких как StarDock ObjectDock, DaemonTools, Mail.ru агент и т.д. Выявить какая именно программа вызывала торможение не удается. Так как при включении любой из них вручную проблема подвисания компьютера не появляется. [вопрос № 179354, ответ № 262381]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 617
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 279
solowey
Статус: Практикант
Рейтинг: 267

Перейти к консультации №:
 

Консультация онлайн # 68674
Раздел: • С / С++
Автор вопроса: Werebear
Отправлена: 26.12.2006, 17:19
Поступило ответов: 3

Здравствуйте, уважаемые эксперты.
Мне дан текстовый файл, "1.txt", например. В нем записана некоторая последовательность цифр, цифры по значению не больше восьми.
Мне надо в этом файле заменить каждую цифру на цифру по значению на единицу больше 0->1, 1->2 ... 8->9.
Реализовать не используя вспомогательного файла, т.е. я должен прочесть символ-цифру из текста и на следующем шаге записать в файл необходимый символ на место старого. И так пока не конец файла.
Как это реализовать на C?

Состояние: Консультация закрыта

Ответ # 133736 от Ramok

Здравствуйте, Werebear!

Для открытия/чтения строки/записи строки/закрытия файла используются функции fopen()/fgets()/fputs()/flose().

Для возврата на старое место записи можно использовать фунции:
ftell() для того что бы выяснить текущий указатель чтения/записи файла,
fseek() для установки указателя чтения/записи в нужное место.

Для увеличения цифры, можно не пребразовывать ее, так как в С подобное работает:
char a = '0';
a = a + 1; /* a == '1' */

Удачи! Ж:-)


Консультировал: Ramok
Дата отправки: 26.12.2006, 17:48

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 133761 от V1s0r

Здравствуйте, Werebear!

Программа на "чистом" C, как ты и просил, без доп. массивов и файлов.
Имя файла передаётся через командную строку.
В двух словах о работе. Считываем символ. Если это цифра, то увеличиваем её на единицу. Смещаем курсор файла назад на один символ и перезаписываем цифру новым значением. Обрати внимание, что после каждой записи вызывается flush для сброса файла на диск. Без него не работает, я так и не понял, почему. Может быть, кто-нибудь объяснит?

Приложение:


Консультировал: V1s0r
Дата отправки: 26.12.2006, 20:29

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, Werebear!
Открываешь файл как на запись так и на чтение.
Запоминаешь позицию указателя в файле (ftell).
Параметр для fopen - r+b или r+t.
Считываешь знаки цифры, переводишь их в число (atoi),
увеличиваешь число на единицу.
запоминаешь новую позицию указателя в файле (ftell).
Возвращаешься на старую позицию, записываешь
вычисленное число. Переходишь на новую позицию.
И так в цикле до конца файла, пока не кончаться числа.
Трудности могут возникнуть, если считанное и вычисленное число
состоят из разного количества цифр
(напр. 9(1 цифра), следующая -10(2 цифры))
Это тоже нужно отслеживать.
Удачи.


Консультировал: kool
Дата отправки: 26.12.2006, 21:36

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14588 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.75 от 18.05.2019
Версия JS: 1.33 | Версия CSS: 3.35