Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ';文件系统&x27;成员不在';std&x27;名称空间_C++_Macos_Runtime Error_Qt Creator - Fatal编程技术网

C++ ';文件系统&x27;成员不在';std&x27;名称空间

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及更早版本

我有一些代码打算获取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及更早版本,它不是可识别的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;
}