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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kosmonaftus
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 32
#1

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

22.11.2013, 15:13. Просмотров 458. Ответов 12
Метки нет (Все метки)

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 файл
Посмотрите здесь:

Сформировать из файла f4.txt файл g.txt - C++
Сформировать из файла f4.txt файл g.txt, состоящий из целых чисел, но для нечётных чисел указать также их значение английским словом 1...

Функция seekq, вместо повторного считывания файла (txt) - C++
Всем привет, ребят. Я тут новый и это мой первый пост :) И вопрос у меня вот какой.. Мне нужно переписать этот код так, чтобы считывание...

Функция отбора по заданному критерию для данных из .bin в .txt - C++
Доброго времени суток. Такая проблема: Необходимо из бинарного файла со списком футболистов отобрать в текстовый вратарей. void...

файл.txt - C++
как сделать так чтобы при записи в файл *.txt текст писался на новой строке? Вот на пример вот так: 1)number name 2)number name ...

Не видит файл .txt - C++
Не знаю в чем проблема. Работаю в Qt Файл лежит в корневой папке, там же где .pro и main /*Количество слов в четных строках текста*/...

Не читается txt-файл - C++
Не могу прочитать из файла &quot;readme.txt&quot; Где ошибка? #include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; void main() { ...

Загрузить файл txt - C++
Как загрузить таблицу из текстового файла? 3 столбца

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
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
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
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 файл
Еще ссылки по теме:

Запись в файл txt - C++
studBeg = GetStud(hDlg); out.open(&quot;output.txt&quot;, ios_base::app); out &lt;&lt; studBeg.fam &lt;&lt; studBeg.imia &lt;&lt;...

ComboBox и txt файл - C++
Как загрузить в комбобокс строки из тхт файла в котором инфо содержится в таком виде =Первый =Второй ... =n Так что бы = не...

Конвертировать bmp файл в txt - C++
Необходимо написать программу для конвертации монохромного bmp файла, в файл txt, где содержимое будет в виде ascii кодов в 16- ричном...

Std::vector в txt файл - C++
У меня есть координаты точек которые хранятся в std::vector (выглядят они так, если выводить просто на экран через cout ,) Как мне их...

Запись данных в файл txt - C++
записываю через for(int i=0;i&lt;l;i++) f&lt;&lt;a.fio&lt;&lt;&quot; &quot;&lt;&lt;a.nomer&lt;&lt;&quot; &quot;&lt;&lt;a.inf&lt;&lt;&quot; &quot;&lt;&lt;a.inmov&lt;&lt;&quot; &quot;&lt;&lt;a.math&lt;&lt;&quot; &quot;&lt;&lt;a.fiz&lt;&lt;endl; Если...


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

Или воспользуйтесь поиском по форуму:
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 файл
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru