| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > Please помогите решить задачу по С |
| Автор: b44 19.5.2006, 06:12 |
| 1.Дана строка S и текстовый файл. Добавить строку S в начало файла. |
| Автор: MAKCim 19.5.2006, 07:32 |
| fputs, fgets |
| Автор: b44 19.5.2006, 09:50 |
| пожалуйста напишите код |
| Автор: jonie 19.5.2006, 10:17 | ||
| принцип - сделать новый файл. сначала копируем строку нужную в него и добавляем все что осталось из второго файла. сторой файл удаляем. Я бы делал так (да и думаю иначе врядли возможно (ну я в смысле принципа создания нового файла)). Хотя мой пример не совсем для текстовых файлов (вообще говоря для бинарников...но думаю сделает туже работу)... иначе - юзайте fputs, fgets.
|
| Автор: GremlinProg 19.5.2006, 10:33 | ||
Совсем не обязательно. Открываем файл на чтение-запись, считываем содержимое в буфер, переводим курсор файла в начало, пишем строку, которую нужно добавить, пишем буфер, который ранее был сохранен, закрываем файл. |
| Автор: jonie 19.5.2006, 10:47 | ||
|
| Автор: likehood 19.5.2006, 10:57 |
| аналогично, нельзя добавить спереди к массиву новый элемент, не перезаписав всего массива. |
| Автор: GremlinProg 19.5.2006, 11:47 | ||||
Новый файл не создается, существующий открывается только один раз. Происходит просто перезапись существующего файла.
А это можно сделать, но уже не в этом разделе ). Это сишный менеджер "кучи" работает на изменение размера "сзади", т.е. ищет подходящий блк памяти, который удовлетворит запрашиваемому размеру(но это опять же опционально: зарезервировать можно фиксированный блок памяти, который никогда не изменит свой начальный адрес, наоборот, все остальные блоки он будет размещать так, чтобы фиксированный блок не изменил адрес). Если кому-то интересно, создавайте тему в WinAPI разделе, там и продолжим дискуссию. |
| Автор: b44 19.5.2006, 14:48 |
| подскажите почему вылазиет ошибка на int _tmain(int argc, _TCHAR* argv[]) после TCHAR* просит закрыть скобку |
| Автор: GremlinProg 19.5.2006, 14:51 |
| потому что _TCHAR тип неизвестный. Если тебя не волнует совместимость с юникодом, то просто замени его на char |
| Автор: b44 19.5.2006, 16:14 |
| int _tmain(int argc, CHAR* argv[]); он всеравно выдает ошибку между CHAR* и argv[]) |
| Автор: b44 19.5.2006, 20:01 |
| помогите пожалуйста завтра уже сдавать! |
| Автор: jonie 19.5.2006, 20:10 | ||||||||
ну замени
на
или
|
| Автор: b44 19.5.2006, 20:57 |
| пожалуйста кто знает как решит эту задачу напишите код! please! если что моя ася 290100815 |
| Автор: b44 20.5.2006, 16:11 |
| Please помогите! я абсолютный ноль в файлах! а сдавать надо! |
| Автор: b44 20.5.2006, 16:54 |
| все спасибо тема закрыта!!! |
| Автор: b44 20.5.2006, 22:58 |
| большое спасибо задача решена |