Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297

Редактирование строки

24.01.2009, 18:52. Показов 2158. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно редактировать текстовый файл таким образом:
у нас есть определенное кол-во символов,которое может быть в строке(можно определить define'ом,пусть будет N)
и нужно сделать так,чтобы в строке в файле(уже в получившемся) было не более N символов,причем если слово обрывается,то его нужно поместить в следующую строку без пробела(может быть в файле много пробелов).
Кодировка может включать русские или английские символы(Как тогда с кодом EOF,который совпадает с кодом "я"?)
Напр.,исходный файл такой(N = 16)

(см. во вложениях)

А должен получиться такой файл(при N = 15):


********************
Литература,
музыка,
изобразительное
искусство
только в том
случае имеют
право на
существование,
если
способствуют
нравственному
perfection
человека.
********************

Вообще,в задаче требуется,чтобы N = 54.Просто придумать такой пример неохота.
И имена файлов через командную строку должны передаваться(sourc file и destination file)


Алгоритм черновой плавает в голове: мы должны сначала идти по файлу,и если число символов нацело делится на N,то идем в обратном порядке,пока не встретится пробел,затем пока не встретится какой-л. др. символ(так мы все лишние пробелы уберем),затем fprintf или fwrite записываем '\n',предварительно проверив,достигается ли начало строки.
Только не знаю ,как идти в обратном порядке в файле(как это организовать)

p.s. ************ - так я отметил для удобства границы файла ))
Вложения
Тип файла: txt Текстовый документ.txt (193 байт, 34 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2009, 18:52
Ответы с готовыми решениями:

Редактирование строки в C++
Не могу понять как правильно добавить символ в конец строки ,вот часть кода , в чем проблема? cin >> st1; s = st1; ...

Редактирование строки
Здравствуйте, ребят. Не буду вас мучить сегодня. Только один вопрос: У меня есть очень длинная строка std::string. Мне нужна возможность...

Редактирование массива строки
Помогите написать функцию которая удалит(или просто не выведет в консоль)одинаковые строки. Например на скрине, после обработки массива...

3
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
25.01.2009, 01:40
Глазами пробежался. Не въехал. По поводу того, как идти в обратном направлении, тебе поможет fseek.
0
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
25.01.2009, 11:18  [ТС]
Тут N равно в обоих случаях 16,просто опечатка.Попробую понятней объяснить:
нужно после определенного кол-ва символов(их коло-во задается в начале программы) записывать в файл '\n' .причем делать это так,чтобы слова не обравались(а если они обрываются,то '\n' записывать перед этим словом)
Может быть,пример не понятен?
Есть у нас файл.В файле такой хаос:

**************************************** **************************
In earlier centuries the
Antarctic was thought

to be a huge
continent.
**************************************** **************************


Напр,в программе кол-во символов,после которых нужно записывать перевод строки - 15
(N = 15,т.е. максимальная длина строки).В итоге получается такой файл:

*************
In earlier
centuries the
Antarctic was
thought to be a
huge continent.
*************


In earlier /* здесь 2 слова + пробел между ними = 10 символов (после слова ealier не должно быть пробела).Т.к. слово centuries не помещается в первую строку (10 символов в 1-ой строке ,а слово centuries - 9 символов, 10 + 9 > 15, поэтому делаем перевод строки перед словом centuries */
centuries the /* здесь 13 символов, и Antarctic уже не помещается в эту строку,следовательно,перед ним записываем перевод строки и т.д.,но не забываем, что пробел , который остался между "the" и "Antarctic" убирается.*/
Antarctic was
thought to be a
huge continent.
Проблема в том,что строки могут быть пустыми в середине текста и может быть много пробелов между словами.(на примере этого не видно,т.к. форум автоматически убирает нунужные пробелы и
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
25.01.2009, 12:51
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
#include <stdio.h>
 
/* как отличить 'я' от EOF */
main()
{
    int c;
    
    for (c = '\0'; c != EOF; ) {
        c = fgetc(stdin);
        if (c != '\n')
            printf("%d\n", c);
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2009, 12:51
Помогаю со студенческими работами здесь

Файлы: редактирование определенной строки
как мне сделать редактирования файла? допустим вместо строки 2 которую я ввел рание записать что-то другое #include &lt;iostream&gt; ...

Удаление и редактирование определённой строки
Задание- словарь синонимов, в нём нужно осуществить удаление и редактирование определённой строки в файле в m1 находит синоним, в m2 -...

Редактирование строки. В строку дозаписывается мусор
Есть программа, которая заменяет в строке &quot;ph&quot; на &quot;f&quot;, а &quot;ed&quot; на &quot;ing&quot;. Программа работает. Но если выводить, вконце вписывает некое...

Работа с файлами. Редактирование только 1 строки
Добрый день как можно редактировать только 1 строку? Есть функция: const char * u_creare_file_training(char *...

Запрет редактирование строки
Есть DBGridEh. Можно ли запретить редактирование какой-либо строки? Есть свойство ReadOnly но оно для колонки, а для строчки что-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru