Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [С++] помогите решить задачу с файлом на


Автор: b44 19.5.2006, 21:15
Дана строка S и текстовый файл. Добавить строку S в начало файла.

кто может пожалуйста напишите код!!! если что моя ася 290100815 

Автор: Fazil6 19.5.2006, 21:26
Код

FILE *f = fopen("c:\\test.txt", "a+");
fputs("Добавили", f);
fclose(f);
 

Автор: MAKCim 20.5.2006, 08:56
Fazil6
Цитата

Добавить строку S в начало файла.

у тебя вроде как в конец добавляет 

Автор: Fazil6 20.5.2006, 10:05
Цитата

у тебя вроде как в конец добавляет

ну да. невнимательо прочитал вспрос 

Автор: b44 20.5.2006, 10:05
пожалуйста кто может напишите код!!! 

Автор: MAKCim 20.5.2006, 11:36
Код

    const char* added="test\n";
    FILE* fs_a=fopen("new_data.dat","w"),
        *fs_b=fopen("data.dat","r");
    fputs(added,fs_a);
    char buffer[512];
    while (fgets(buffer,512,fs_b))
        fputs(buffer,fs_a);
    fclose(fs_a);
    fclose(fs_b);

не совсем то, что нужно (создается новый файл) 

Автор: b44 20.5.2006, 13:43
пожалуйста напишите кто нить правильный код! 

и что надо дописать до и после кода

 
Код

const char* added="test\n";
    FILE* fs_a=fopen("new_data.dat","w"),
        *fs_b=fopen("data.dat","r");
    fputs(added,fs_a);
    char buffer[512];
    while (fgets(buffer,512,fs_b))
        fputs(buffer,fs_a);
    fclose(fs_a);
    fclose(fs_b);

 

Автор: jonie 20.5.2006, 15:21
убейте флудеров. Ответ думаю дан тут:
http://forum.vingrad.ru/index.php?showtopic=96772&unread=1&hl= 

Автор: b44 20.5.2006, 16:17
Jonie никого не надо убивать там какая то фара! 

пожалуйста помогите в решении задачи! я абсолютный ноль в файлах! Please 

Автор: mr.Anderson 20.5.2006, 16:54
О! У меня получилось. b44, стучитесь.

Добавлено @ 16:59 
Гм... Выложу тут решение на всякий случай. Чтобы вопросов не было.
Код

//-------------------------------------------------------

#include <stdio>
#include <iostream>
//-------------------------------------------------------

int main(void)
{
 const int strsize=255;
 char filename[]="file.txt",
      add_str[]="MyString",
      temp_str[strsize];
 FILE *add;

 add=fopen(filename,"r+");

 //Копируем все содержимое (мой вариант для строки в 255 символов)
 fgets(temp_str,strsize,add);

 fseek(add,0,SEEK_SET);
 fputs(add_str,add);
 //Дописываем то, что там было до записи
 fputs(temp_str,add);

 fclose(add);
}
//-------------------------------------------------------


Добавлено @ 17:09 
Ессно, в моей программе подразумевается присутствие в коде файла FILE.TXT, в котором уже что-то написано. Я делал код только для указанной задачи, не вдаваясь в подробности ввода текста в файл, его существования и прочего. 

Автор: MAKCim 20.5.2006, 17:16
sim7, а если файл достаточно большой, 255 байт точно не хватит 

Автор: AlanG 20.5.2006, 17:18
OFtop
b44,  а с какого курса задачка?
 

Автор: mr.Anderson 20.5.2006, 18:10
Вот более удовлетворяющее условию решение:
Код

//-------------------------------------------------------

#include <stdio>
#include <iostream>
//-------------------------------------------------------

int main(void)
{
 const char filename[]="test_file.txt";
 char temp_str[255],
      s[]="StartString",
      s2[]="NewString";
 FILE *file;

 remove(filename);

 file=fopen(filename,"a+");
 fputs(s,file);
 fclose(file);

 file=fopen(filename,"r+");
 fgets(temp_str,255,file);

 fseek(file,0,SEEK_SET);
 fputs(s2,file);

 fputs(temp_str,file);

 fclose(file);
}
//-------------------------------------------------------


MAKCim, а я и не говорю, что этого достаточно. smile Просто времени нет возиться со string-ами.

Добавлено @ 18:13 
Да и опыта в отношении класса string у меня маловато. 

Автор: b44 20.5.2006, 23:04
большое спасибо!!! 

Автор: mr.Anderson 21.5.2006, 17:13
be4, это что значит? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)