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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с fputs 
:(
    Опции темы
malor
  Дата 19.7.2011, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код
#define pathLog    "Z:\\LogEvent.txt"    

FILE *pFileLog;
char *strMesg;
int result;

pFileLog = fopen(pathLog, "w");    

...........................

strMesg = "test_record";
result = fputs(strMesg, pFileLog);


result  равен 0, но записи никакой в файле нет. Почему?
PM MAIL   Вверх
Сыроежка
Дата 19.7.2011, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(malor @  19.7.2011,  19:55 Найти цитируемый пост)
Выделить всёкод C++

    
#define pathLog    "Z:\\LogEvent.txt"    
FILE *pFileLog;
char *strMesg;
int result;
pFileLog = fopen(pathLog, "w");    
...........................
strMesg = "test_record";
result = fputs(strMesg, pFileLog);


result  равен 0, но записи никакой в файле нет. Почему? 


Первое - это проверьте ferror. Второе, смотрите содержимое файла после его закрытия, так как сразу же данные на диск могут не записываться. К тому же надо проверить, действительно ли у вас открылся файл.


Это сообщение отредактировал(а) Сыроежка - 19.7.2011, 20:06
PM MAIL   Вверх
malor
  Дата 19.7.2011, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так написал:
Код
char *strMesg = "test_record";
int result = fputs(strMesg, pFileLog);
result = ferror(pFileLog);
fclose(pFileLog);
result = ferror(pFileLog);
Проверил содержимое файла после строки 
fclose(pFileLog);
он заполнен. Хорошо, но т.к. я часто буду добавлять туда строки, то наверно лучше поставить 
fflush(pFileLog) ?
PM MAIL   Вверх
Сыроежка
Дата 19.7.2011, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(malor @  19.7.2011,  20:15 Найти цитируемый пост)
Так написал:
Выделить всёкод C++
    
char *strMesg = "test_record";
int result = fputs(strMesg, pFileLog);
result = ferror(pFileLog);
fclose(pFileLog);
result = ferror(pFileLog);
Проверил содержимое файла после строки 
fclose(pFileLog);
он заполнен. Хорошо, но т.к. я часто буду добавлять туда строки, то наверно лучше поставить 
fflush(pFileLog) ? 



У вас в коде ошибка. Вы вызываете ferror после того, как уже закрыли файл, а не после записи строки.
Что касается fflush, то не совсем понятно, зачем вам это нужно? Вы хотите после каждой записи визуально убеждаться, что данные физически на диске? 
PM MAIL   Вверх
malor
  Дата 19.7.2011, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



>>Что касается fflush, то не совсем понятно, зачем вам это нужно? Вы хотите после каждой 
>>записи визуально убеждаться, что данные физически на диске?  


Во время отладки нужно было посмотреть что пишет.
PM MAIL   Вверх
baldina
Дата 19.7.2011, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

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



Цитата(g27 @  7.4.2009,  22:23 Найти цитируемый пост)
вообщем вопрос как записать допусти int или вот как щас букву.

g27, попробуй fprintf()

PM MAIL   Вверх
bsa
Дата 19.7.2011, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




 ! 
bsa
malor, для своих вопросов следует создавать новые темы, а не поднимать двух летней давности

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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