c++ - 文件已创建,但不可见

标签 c++

我有简单的文件创建代码,可以创建带记录的文件。 existsf 显示该文件存在,但我无法使用资源管理器在文件系统中看到它。可能出了什么问题?

#define FN "C:\Projects\src.txt"

using namespace std;


inline bool existsf (const std::string& name) {
    struct stat buffer;   
    return (stat (name.c_str(), &buffer) == 0); 
}


int _tmain(int argc, _TCHAR* argv[])
{
    std::ofstream f;
    f.open(FN);
    if ( f.is_open() )
    {
        f<<"Some text here"<<std::endl;
        f.flush();
        f.close();
    }
    if (existsf(FN)) wcout<<"exist\n";
}

最佳答案

 #define FN "C:\Projects\src.txt"

反斜杠是 C++ 字符串常量中的转义符。您使用反斜杠转义了 Ps,这对它们没有任何作用。所以这相当于:

 #define FN "C:Projectssrc.txt"

您想转义反斜杠以在字符串中生成文字反斜杠,如下所示:

 #define FN "C:\\Projects\\src.txt"

关于c++ - 文件已创建,但不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26711580/

相关文章:

c++ - 如果模板参数是函数指针

c++ - 连接四个位板

c++ - PyTorch C++ 扩展中的可选张量

C++ 变量地址和对齐 | x86

c++ - 如何通过 C++ 中的函数退出 while 循环

c++ - 我应该如何在菱形模式中调用父 move 构造函数?

c++ - Tcl_ParseExpr 不解析其中包含 'dot' 的表达式

c++ - 如何将文本文件转换为 MPI_Bcast 可以发送的格式?

c++ - 为什么或为什么不在 C++ 中使用 memset?

c++ - 树莓派交叉编译——执行程序结束于 "Segmentation fault"