Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает FSEEK 
V
    Опции темы
mr.Anderson
Дата 20.5.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Пишу вот такое:
Код

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

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

int main(void)
{
 const char add_str[]="String";
 FILE *add;

 //Создаем и заполняем файл
 add=fopen("file.txt","w+");
 fputs("ThisIsEndOfFile",add);
 fclose(add);

 //Пытаемся запихать туда строчку add_str
 add=fopen("file.txt","a");
 fseek(add,0L,SEEK_SET);
 fputs(add_str,add);

 //Но выводится не ноль, как хотелось бы, а другое число - число конца файла

 printf("Current position of file pointer: %d",ftell(add));
 getch();
}
//-------------------------------------------------------

А надо бы, чтобы указатель был на начале, и String писалось в начало файла. Где я наврал? Почему fseek не пашет? 


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
cardinal
Дата 20.5.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Напиши не 
Код

add=fopen("file.txt","a");

а
Код

add=fopen("file.txt","r+");

т.к.
Цитата(MSDN)

When a file is opened with the "a" or "a+" access type, all write operations occur at the end of the file. The file pointer can be repositioned using fseek or rewind, but is always moved back to the end of the file before any write operation is carried out. Thus, existing data cannot be overwritten.
 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
mr.Anderson
Дата 20.5.2006, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Дык... Оно, конечно, хорошо, но мне надо ДОПИСАТЬ, а не переписать тот текст, что был, новым. А дописать как? Вставить текст в начало файла, в общем?  

Это сообщение отредактировал(а) sim7 - 20.5.2006, 15:39


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
jonie
Дата 20.5.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Цитата

Вставить текст в начало файла, в общем?  

http://forum.vingrad.ru/index.php?showtopic=96906
и далее по ссылкам. 


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
mr.Anderson
Дата 20.5.2006, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Все, вопрос решился. В смысле, нашел я решение. smile 


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
cardinal
Дата 20.5.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Ну так вопрос в следующий раз поточнее поставь тогда... smile 

Из этого
Цитата(sim7 @  20.5.2006,  13:18 Найти цитируемый пост)
А надо бы, чтобы указатель был на начале, и String писалось в начало файла.

это ИМХО не вытекает
Цитата(sim7 @  20.5.2006,  14:38 Найти цитируемый пост)
но мне надо ДОПИСАТЬ, а не переписать тот текст, что был, новым. А дописать как?

 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0646 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.