Я пытаюсь реализовать в программе код для печати языкового времени в C++, указанный в How to get current time and date in C++?.Внедрение времени форматирования времени локали
Я сделал некоторую поправку, чтобы адаптировать код к моему заголовку, но он все еще дает мне ошибку «Метод« put »не может быть разрешен». Я новичок, поэтому я не мог найти ответа. Я нахожусь на Eclipse. Я установил число масштабируемости редактора в 50000. Также файл имеет другой класс между включениями и кодом.
Код это:
#ifndef LISTA_H_
#define LISTA_H_
#include "nodel.h"
#include "hntable.h"
#include <iostream>
#include <string>
#include <iterator>
#include <time.h>
using namespace std;
class timefmt
{
public:
timefmt(std::string fmt)
: format(fmt) { }
friend ostream& operator <<(ostream &, timefmt const &);
private:
string format;
};
std::ostream& operator <<(std::ostream& os, timefmt const& mt)
{
std::ostream::sentry s(os);
if (s)
{
time_t t = time(0);
tm const* tm = localtime(&t);
ostreambuf_iterator<char> out(os);
use_facet<time_put<char>>(os.getloc())
.put(out, os, os.fill(),
tm, &mt.format[0], &mt.format[0] + mt.format.size());
}
os.width(0);
return os;
}
#endif /* LISTA_H_ */
Edit: Если я включаю "локаль" ошибка ранее шоу решена, но: множественное определение `оператора < < (станд :: ostream &, timefmt Const &) '. Любые намеки об этом?
У вас есть много ошибок на вашем коде ..... вы проводки весь код? Я не вижу «tm» type defintion/declaration, просто взглянув на него. – Miguel
@Miguel 'tm' [определяется в стандартной библиотеке] (http://www.cplusplus.com/reference/ctime/tm/) –
@IgorTandetnik Я не знал, что даже существовал Я думал, что это пользовательский интерфейс, который он забыл объявить. Спасибо хоть. – Miguel