C++ ';文件系统&x27;成员不在';std&x27;名称空间
我有一些代码打算获取PNG图像的文件大小(来自不同的堆栈溢出帖子)C++ ';文件系统&x27;成员不在';std&x27;名称空间,c++,macos,runtime-error,qt-creator,C++,Macos,Runtime Error,Qt Creator,我有一些代码打算获取PNG图像的文件大小(来自不同的堆栈溢出帖子) #包括 #包括 #包括 #包括 const char*INPUT_FILENAME=“test.png”; 使用名称空间std; int main() { std::ifstream文件; 大小\u t大小=0; std::cout错误是编译器不支持std::filesystem 根据编译器的不同,有一种说法是“…” 此链接可能有助于: CONFIG+=c++17可与Qt 5.12及更高版本一起使用 对于Qt5.11及更早版本
#包括
#包括
#包括
#包括
const char*INPUT_FILENAME=“test.png”;
使用名称空间std;
int main()
{
std::ifstream文件;
大小\u t大小=0;
std::cout错误是编译器不支持std::filesystem
根据编译器的不同,有一种说法是“…”
此链接可能有助于:
CONFIG+=c++17
可与Qt 5.12及更高版本一起使用
对于Qt5.11及更早版本,它不是可识别的QMake标志,您可以
我得把你的手弄脏一点
添加QMAKE\u cxflags+=-std=c++17
完成了GCC&Clang的工作;
对于MSVC,您可能需要指定/std:c++17
或
/std:c++最新版本
另见
如果两个选项都不起作用,请用您的特定编译器版本发回。您使用的编译器是什么(叮当声?),以及什么版本?仅在C++17中引入。如果您的编译器没有完全的C++17支持,它可能无法实现std::filesystem
,或者它可能只提供临时实现作为。谢谢!此解决方案对我有效!我遇到了下一个(可能相关)可疑代码行中的问题size=std::filesystem::file\u size(输入文件名)我知道更长时间获得文件系统成员错误,但我收到<代码>文件大小不可用:在MACOS 10.15 中引入。当我运行112.3时,我有点困惑。但是如果这太不相关,我会考虑在不同的线程下提交。你可以总是去旧学校,简单地打电话给朋友。
#include <fstream>
#include <cstring>
#include <cstddef>
#include <filesystem>
const char* INPUT_FILENAME = "test.png";
using namespace std;
int main()
{
std::ifstream file;
size_t size = 0;
std::cout << "Attempting to open " << INPUT_FILENAME << std::endl;
file.open( INPUT_FILENAME, std::ios::in | std::ios::ate );
char* data = 0;
file.seekg( 0, std::ios::end );
// size = file.tellg();
size = std::filesystem::file_size(INPUT_FILENAME);
std::cout << "File size: " << size << std::endl;
file.seekg( 0, std::ios::beg );
data = new char[ size - 8 + 1 ];
file.seekg( 8 ); // skip the header
file.read( data, size );
data[ size ] = '\0';
std::cout << "Data size: " << std::strlen( data ) << std::endl;
}