{
std::cout << "The file is clean.\n";
return for_do();
}
else if (std::size("Try2.txt") != 0)
{
std::ifstream fout_name("Try2.txt");
while (fout_name)
{
char open[50];
fout_name.getline(open, 50);
std::cout << open << std::endl;
}
return for_do();
}
else
{
std::cout << "Error\n";
return for_do();
} Этот код должен показывать текст, если файл пуст, но он просто пропускает две строчки. Что делать?
> std::size("Try2.txt") Это ты сам придумал?
Откуда тогда взял?
Ещё скажи зачем тебе тут ветка else
Если файл чист, то должно должно появиться сообщение, что он чист, если - нет, то открыть файл
Так, а третья ветка зачем?
Если каким-то образом произойдёт другая фигня, то вызвать эту ветку)
Эта ветка никогда не вызовется
Короче, тебе надо подключить <filesystem> и использовать std::filesystem::file_size
юзать fstat()
Ошибку выбивает: имя, за которым следует выражение "::", должно определять класс или пространство имён
Сейчас попробую
А его надо так fstat("имя файла")?
Почти. Второй аргумент ещё надо. man fstat.
Можешь, пожалуйста, написать пример)
https://coliru.stacked-crooked.com/a/cdb7c03b36a6d1d5
Cпасибо, всё работает) Хотел ещё спросить, это библиотеки из C?
А что делает функция std::size?)
Returns the size of the given container c or array array https://en.cppreference.com/w/cpp/iterator/size
std::size(“Try2.txt”) всегда будет возвращать 9
В вышеуказанном случае имя файла являлось "массивом символов"
Обсуждают сегодня