#c #time
#c #время
Вопрос:
Я пытаюсь получить дату последнего изменения файлов папки на C . Но я не понимаю, как я могу заменить «afile.txt » но переменное имя.
Когда я заменяю «afile.txt » из-за чего-то другого я получил эту ошибку:
proj.cpp : В функции ‘Папка getdir2(std::string, std::vector >amp;, std::string, std::string, std::string)’: proj.cpp:325:25: ошибка: не удается преобразовать ‘const string {он же const std::basic_string}’ в ‘const char*’ для аргумента ‘1’ в ‘int stat(const char*, stat*)’ stat(t1, amp;attrib); // получаем атрибуты afile.txt
Вот этот код:
struct tm* clock; // create a time structure
struct stat attrib; // create a file attribute structure
stat("afile.txt", amp;attrib); // get the attributes of afile.txt
clock = gmtime(amp;(attrib.st_mtime)); // Get the last modified time and put it into the time structure
Комментарии:
1. Для этого и нужны ссылки .
Ответ №1:
Похоже, что вы пытаетесь передать std::string
в stat
. stat
является функцией C и, как таковая, принимает только const char *
(строку «C») в качестве входных данных.
Используйте .c_str()
метод std::string
, чтобы получить строку C:
std::string filename;
...
stat(filename.c_str(), amp;attrib);