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

Функция логирования в txt файл - C++

Восстановить пароль Регистрация
 
Kosmonaftus
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 32
22.11.2013, 15:13     Функция логирования в txt файл #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <stdio.h>
using namespace std;
 
 
char sContent;
char sFileLog = "log.txt";
bool iTrigerlogfile = 1;
 
Fwrite_file (int iTrigerlogfile, char sContent,char sFilename);
 
int main(){
    Fwrite_file (iTrigerlogfile,"test",sFileLog);
    return 0;
}
 
bool Fwrite_file (int iTrigerlogfile, char sContent,char sFilename){
    if (trigerlogfile){
        FILE* out = fopen(file, "w");
        fprintf(out, "%s\n", content);
        return fclose(out);
    }
}
Что я сделал не так? Показывает ошибки инициализации
(7) : error C2440: 'initializing' : cannot convert from 'char [8]' to 'char'
(13) : error C2664: 'Fwrite_file' : cannot convert parameter 2 from 'char [5]' to 'char'
(19) : error C2556: 'bool __cdecl Fwrite_file(int,char,char)' : overloaded function differs only by return type from 'int __cdecl Fwrite_file(int,char,char)'
....

и их куча.

И второй вопрос, как к content переменной пристыковать дату?
те data()." - ".content (напишу как в php чтоб понятнее было)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 15:13     Функция логирования в txt файл
Посмотрите здесь:

C++ отладить программу на языке С++, которая считывает из файла a.txt строку и записывает её в файл b.txt в обратном порядке
C++ В файле input.txt содержатся сведения о группе студентов. переписать данные файла в файл output.txt, отсортировав их по возрастанию
Сформировать из файла f4.txt файл g.txt C++
C++ Прочитать txt и записать в другой txt файл
Исправить программу, чтоб считывала текст из файла Input.txt и выводит в файл Output.txt C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
22.11.2013, 15:26     Функция логирования в txt файл #2
Цитата Сообщение от Kosmonaftus Посмотреть сообщение
(7) : error C2440: 'initializing' : cannot convert from 'char [8]' to 'char'
(13) : error C2664: 'Fwrite_file' : cannot convert parameter 2 from 'char [5]' to 'char'
(19) : error C2556: 'bool __cdecl Fwrite_file(int,char,char)' : overloaded function differs only by return type from 'int __cdecl Fwrite_file(int,char,char)'
у тебя функции принимают по одному символу, а ты видать хочешь туда загнать строчки с файл нэйм, путём и тд

Добавлено через 19 секунд
тебе лог нужен?
Kosmonaftus
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 32
22.11.2013, 15:27  [ТС]     Функция логирования в txt файл #3
да я пишу функцию логирования ошибок
newbie666
Заблокирован
22.11.2013, 15:30     Функция логирования в txt файл #4
на Qt подойдёт?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void WriteLog( QString msg )
{
    QTime t = QTime::currentTime();
    QDate d = QDate::currentDate();
    QString datePart = QString("%1-%2-%3 %4:%5:%6:%7").arg(d.year()).arg(d.month()).arg(d.day()).arg(t.hour()).arg(t.minute()).arg(t.second()).arg(t.msec());
 
    QString fileName = "";
    if(logFilePath.simplified() > 0)
        fileName += logFilePath;
 
    QString logsDir = "\\logs\\";
    QDir dir;
    dir.mkpath(QString(logFilePath + logsDir));
    fileName += logsDir;
    QString tmp = QString("%1-%2-%3.txt").arg(d.year()).arg(d.month()).arg(d.day());
    fileName += tmp;
    
    QFile file(fileName);
    if (!file.open( QIODevice::Append | QIODevice::Text) )
        return;
    QTextStream out(&file); 
    out << datePart << endl << msg << endl;
    out << endl;
    file.close();
}
Добавлено через 1 минуту
Где logFilePath предварительно заданная переменная или же передавай её в функцию

Добавлено через 1 минуту
наверное с Qt ты не знаком, тогда рассказывай, что и как ты хочешь выводить в лог - я тебе накидаю ...
Kosmonaftus
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 32
22.11.2013, 15:52  [ТС]     Функция логирования в txt файл #5
Цитата Сообщение от newbie666 Посмотреть сообщение
на Qt подойдёт?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void WriteLog( QString msg )
{
    QTime t = QTime::currentTime();
    QDate d = QDate::currentDate();
    QString datePart = QString("%1-%2-%3 %4:%5:%6:%7").arg(d.year()).arg(d.month()).arg(d.day()).arg(t.hour()).arg(t.minute()).arg(t.second()).arg(t.msec());
 
    QString fileName = "";
    if(logFilePath.simplified() > 0)
        fileName += logFilePath;
 
    QString logsDir = "\\logs\\";
    QDir dir;
    dir.mkpath(QString(logFilePath + logsDir));
    fileName += logsDir;
    QString tmp = QString("%1-%2-%3.txt").arg(d.year()).arg(d.month()).arg(d.day());
    fileName += tmp;
    
    QFile file(fileName);
    if (!file.open( QIODevice::Append | QIODevice::Text) )
        return;
    QTextStream out(&file); 
    out << datePart << endl << msg << endl;
    out << endl;
    file.close();
}
Добавлено через 1 минуту
Где logFilePath предварительно заданная переменная или же передавай её в функцию

Добавлено через 1 минуту
наверное с Qt ты не знаком, тогда рассказывай, что и как ты хочешь выводить в лог - я тебе накидаю ...

да блин Шилдт не писал пока об этом, ну или я не дошел . Мне надо значть как поправить мой код чтоб он работал Хотя бы начать с этого
newbie666
Заблокирован
22.11.2013, 16:00     Функция логирования в txt файл #6
Цитата Сообщение от Kosmonaftus Посмотреть сообщение
да блин Шилдт не писал пока об этом, ну или я не дошел . Мне надо значть как поправить мой код чтоб он работал Хотя бы начать с этого
пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#define _CRT_SECURE_NO_WARNINGS
 
#include <iostream>
#include <stdio.h>
using namespace std;
 
 
char sContent;
char *sFileLog = "log.txt";
bool iTrigerlogfile = 1;
 
bool Fwrite_file (int iTrigerlogfile, char *sContent,char *sFilename);
 
int main(){
    Fwrite_file (iTrigerlogfile,"test",sFileLog);
    return 0;
}
 
bool Fwrite_file (int iTrigerlogfile, char *sContent,char *sFilename){  
 
    if (iTrigerlogfile){ 
        FILE* out = fopen(sFilename, "w");
        fprintf(out, "%s\n", sContent);
        return fclose(out);
    }
    return true;
}
плюсик ставится под ником
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
22.11.2013, 16:04     Функция логирования в txt файл #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdio.h>
using namespace std;
 
const char* sContent;
const char* sFileLog = "log.txt";
bool iTrigerlogfile = 1;
 
bool Fwrite_file (int iTrigerlogfile, const char* sContent, const char* sFilename);
 
int main(){
    Fwrite_file (iTrigerlogfile, "test", sFileLog);
    return 0;
}
 
bool Fwrite_file (int iTrigerlogfile, const char* sContent, const char* sFilename){
    if (trigerlogfile){
        FILE* out = fopen(file, "a");  // w - перезаписать файл, a - дополнять файл
        fprintf(out, "%s\n", content);
        return fclose(out);
    }
}
newbie666
22.11.2013, 16:09
  #8

Не по теме:

я первый, я первый

CheshireCat
22.11.2013, 16:15
  #9

Не по теме:

Опередил :-)

Kosmonaftus
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 32
22.11.2013, 17:07  [ТС]     Функция логирования в txt файл #10
понял что надо читать дальше, не могу понять пока что такое указатели вообще на кой они нужны если есть перменная как есть
Kosmonaftus
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 32
24.11.2013, 02:24  [ТС]     Функция логирования в txt файл #11
Спасибо всем кто мне помогал , в связи с вашими правками пришлось потратить два дня на изучение указателей и понять что вы char* sFileLog = "log.txt"; создали массив по сути. Ну теперь я знаю что любые строковые значения нужно присваивать только через указатели.
Функция заработала, я малость ее изменил даже:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <stdio.h>
using namespace std;
 
char* sFileLog = "log.txt";
bool iTrigerlogfile = true;
 
void Fwrite_file (int iTrigerlogfile, char *sContent,char *sFilename);
 
int main(){
    Fwrite_file (iTrigerlogfile,"test",sFileLog);
    return 0;
}
 
void Fwrite_file (int iTrigerlogfile, char *sContent,char *sFilename){
    if (iTrigerlogfile){
        FILE* out = fopen(sFilename, "a+");
        fprintf(out, "%s\n", sContent);
        fclose(out);
    }
}
Теперь мне нужно добавить дату перед sContent!
И еще хотелось бы уточнить такую вещь, почему при компиляции получается такой огромный размер exe 238кб? Если я хочу чтоб размер был 28кб ведь я не так много написал кода!
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
26.11.2013, 15:13     Функция логирования в txt файл #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <time.h>
 
 
void Fwrite_file (int iTrigerlogfile, const char *sContent, const char *sFilename){
    if (iTrigerlogfile){
        FILE* out = fopen(sFilename, "a+");
        time_t currTime = time(NULL);
        struct tm* localTime = localtime (&currTime);
        fprintf(out, "%d-%d-%d  %s\n", localTime->tm_mday, localTime->tm_mon + 1, localTime->tm_year + 1900, sContent);
        fclose(out);
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 21:58     Функция логирования в txt файл
Еще ссылки по теме:

C++ Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии
C++ Найти минимальное и максимальное числа из input.txt и записать его в файл output.txt
C++ Считать 10 целых чисел с файла 1.txt и записать в файл 2.txt максимальный элемент и его индекс

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Kosmonaftus
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 32
26.11.2013, 21:58  [ТС]     Функция логирования в txt файл #13
C++
1
time_t currTime = time(NULL);
создаем переменную currTime типа time_t и присваиваем ей ... не понимаю что почему NULL

C++
1
tm *localTime = localtime (&currTime);
создаем ссылку на localtime(&currTime) ... зачем &currTime .... я запутался вообще
а можно пояснить словами эти две строчки? И зачем там были структуры?
Yandex
Объявления
26.11.2013, 21:58     Функция логирования в txt файл
Ответ Создать тему
Опции темы

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