Форум программистов, компьютерный форум CyberForum.ru

Перезапись строк в файле - C++

Восстановить пароль Регистрация
 
Rabacop
0 / 0 / 0
Регистрация: 26.12.2011
Сообщений: 3
26.12.2011, 13:33     Перезапись строк в файле #1
Люди пожалуйста подскажите как можно перезаписать строку в файле. Не используя fstream.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 13:33     Перезапись строк в файле
Посмотрите здесь:

C++ Поиск строки в файле и её перезапись
C++ Перезапись части информации в файле
C++ Сортировка строк в файле
C++ Массив строк в файле
C++ Подсчет строк в файле
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
26.12.2011, 14:17     Перезапись строк в файле #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main()
{
    FILE *ff=fopen("file.txt","r+");// открываем для чтения с последующей записью
    char StringForWrite[]="new text";
    char tt[100];long pos;
    for(int i=0;!feof(ff);i++)// читаем файл
    {
        fgets(tt,99,ff);
        if(i==3)
           pos=ftell(ff); // Запомним позицию, куда писать
    }
    fseek(ff,pos,SEEK_SET); // Переходим к позиции для записи
    fputs(StringForWrite,ff);// Пишем
    fclose(ff);
}
Rabacop
0 / 0 / 0
Регистрация: 26.12.2011
Сообщений: 3
26.12.2011, 14:55  [ТС]     Перезапись строк в файле #3
А можно тоже самое только с fprintf и fscanf.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
26.12.2011, 15:03     Перезапись строк в файле #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
        FILE *ff=fopen("file.txt","r+");// открываем для чтения с последующей записью
        char StringForWrite[]="new text";
        char tt[100];long pos;
        for(int i=0;!feof(ff);i++)// читаем файл
        {
                fscanf(ff,"%s",tt);
                if(i==3)
                   pos=ftell(ff); // Запомним позицию, куда писать
        }
        fseek(ff,pos,SEEK_SET); // Переходим к позиции для записи
        fprintf(ff,"%s",StringForWrite);// Пишем
        fclose(ff);
}
Только учтите, что fscanf по формату %s читает до любого пробельного символа, а не до конца строки ('\n').
Rabacop
0 / 0 / 0
Регистрация: 26.12.2011
Сообщений: 3
27.12.2011, 07:37  [ТС]     Перезапись строк в файле #5
Спасибо вам, но у меня ещё один вопрос .Как можно очистить стоку в файле до первого переноса строки.
Yandex
Объявления
27.12.2011, 07:37     Перезапись строк в файле
Ответ Создать тему
Опции темы

Текущее время: 01:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru