fstream绝对路径不起作用

时间:2010-10-17 19:35:18

标签: c++ visual-studio-2008 stream

这真的很奇怪。绝对路径不适用于ifstream和ostream。当我使用这样的相对路径时,它可以工作:

ofstream out;
out.open("file2.txt");
string river = "i love cheese";

if(!out){
    cout << "error"; // have breakpoint set here
} else {
    out << river; // have breakpoint set here (stops here when debugging)
}

out.close();

但是当我使用绝对路径时,却没有。我很清楚需要使用“\”作为斜杠,而我尝试使用“/”而它仍然不起作用。

ofstream out;
out.open("C:\\file2.txt"); // also tried "C:/file2.txt"
string river = "i love cheese";


if(!out){
    cout << "error"; // have breakpoint set here (stops here when debugging)
} else {
    out << river; // have breakpoint set here
}

out.close();

我真的需要它使用绝对路径,因为这是提供给函数的内容,输入和输出文件并不总是与二进制文件位于同一文件夹中。

1 个答案:

答案 0 :(得分:3)

你的操作系统是什么? Windows 7 允许在C:\上创建文件。您可以在C:\上创建新文件夹,例如C:\ temp \并尝试以下代码:

std::ofstream out;  
out.open("C:\\temp\\asd.txt" );
if( ! out )
{
    std::cout << "1";
}
if ( !out.is_open() )
{
    std::cout << "2";
}
out.close();

这很好用。但是当你尝试在C:\上创建文件时,它会打印“12”。