| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Помогите написать программу на "Си" |
| Автор: Эпсилон 3.1.2007, 22:13 |
| Помогите пожалуйста написать программу на "Си", не на "С++". "Выравнивание строк: в тексте из N строк выровнить строки так, чтобы каждая строка имела длину 65 символов. Выравнивание произовится за счёт вставки дополнительных пробелов." Ход действий я знаю: нужно открыть текстовый документ FILE *IN, его просто прочитать(rt), совершить над ним выравниваение с помощью цикла добавить пробелы, подсчитать длину строки, если нет 65 то ещё добавить пробелы, опять подсчитать длину строки, до тех пор пока не будет 65символов в строке, и сохранить уже в новый текстовый документ только в FILE *OUT. Но реализовать в Си коде не смог, помогите написать, взаранее спасибо. |
| Автор: Эпсилон 3.1.2007, 23:10 |
| Спасибо большое всё получилось, только не то, я же подсчитал сколько длина строки, а как подсчитать сколько пробелов? и если можно то как это в коде выглядит, "Си" недавно начал изучать. |
| Автор: _hunter 4.1.2007, 11:25 |
| проходиш по всем элементам массива символов, если текущий символ == ' ' -- увеличиваеш счетчик на 1. в чем тут может быть проблема -- не понимаю... |
| Автор: Эпсилон 4.1.2007, 15:22 | ||||
Вот написал только пишет две ошибки:
Первая ошибка когда открываю файл:
Error C:\____\zadacha.c 9: Improper use of a typedef symbol in function main Вторая ошибка тоже в File *out: ("out" светится как ошибка): Error C:\____\zadacha.c 9: Undefined symbol ' out ' in function main. |
| Автор: frenchman 4.1.2007, 15:27 | ||||
Эпсилон,
SIZE - это длина строки. |
| Автор: Rockie 4.1.2007, 15:44 | ||||
|
| Автор: _hunter 4.1.2007, 15:48 |
| студия 7.1 компилит... |
| Автор: Rockie 4.1.2007, 15:49 |
imho это лишнее тут если честно, полета мысли не понял. Тебе вроде бы алгоритм дан.. поменяй out на myOut или что-нибудь еще |
| Автор: Rockie 4.1.2007, 16:35 | ||||
Нужно еще добавить проверки
ну и погрешность деления при расчете кол-ва пробелов. А так - держи, с выводом на экран.
|
| Автор: Эпсилон 5.1.2007, 03:21 |
| Спасибо большоё всё работает, но нужно чтобы результат, выровненный текст, нужно записать в другой файл. А когда я добавляю FILE *out, то выходят опять те же ошибки. |
| Автор: Rockie 5.1.2007, 03:36 | ||||
Эпсилон, по форматировнию кода видно, что out это зарезервированное слово(оно жирное). поэтому я и написал двумя постами выше imho потом останется заменить
на что-нибудь вроде
|
| Автор: apook 5.1.2007, 09:28 | ||
Если в в какой-то строке нет пробела программа благополучно завершилась Зачем так категорично |
| Автор: Rockie 5.1.2007, 15:27 | ||||
apook, всмысле "категорично"? Это учебный пример, в нем главное не интерфейс, а функциональность. А так - хоть мигающий ShowMessage прикручивай p.s.: кстати imho этот код
не говорит об успешном завершении программы. Просто так обычно делают. |
| Автор: Kuvaldis 5.1.2007, 16:15 |
| Граждане, в свое время другие граждане целых 4 листа по этой теме списали http://forum.vingrad.ru/index.php?showtopic=124385&kw=%E2%FB%F0%E0%E2%ED%E8%E2%E0%ED%E8%E5&hl= |
| Автор: apook 5.1.2007, 16:49 | ||||
Сделать так:
Зачем такие строгости именно в учебном материале
Я имелл ввиду что без ошибки, добровольно препвать программу тогда-как она может работать и дальше. |
| Автор: Эпсилон 6.1.2007, 17:29 |
| Спасибо большое всем за помощь. Программа работает. |