在linux中创建一个文件

时间:2013-07-25 21:28:03

标签: c++

我是linux的新手,我想创建一个文件并写入内容。

我没有收到任何错误,但代码没有创建任何文件......我缺少什么?

#include <iostream>
#include <fstream>

int main(){
    std::ofstream out("/Home/peter/Dropbox/C++/linux/data.dat", std::ios::out | std::ios::binary);
    if(!out)
        std::cout << " File isn't open\n" << std::endl;
    char s = 'a';

    for(int i = 0; i<100; i++)
        out.put(s);

    return 0;

}

3 个答案:

答案 0 :(得分:6)

您应该在程序结尾添加out.close()。这将刷新写缓冲区以确保正确写入。

另外,请确认您确实拥有(而不是您的程序)在该目录中创建和写入文件的权限。

最后,确保您写入的路径实际上是正确的。正如@Adam在评论中指出的那样,您可能打算使用/home/...而不是/Home/...

答案 1 :(得分:2)

我复制并粘贴了脚本,但更改了路径,并且代码执行成功。完成文件关闭流后,我建议使用out.close()

您还可以在文件上使用流操作符来编写它:

for( int i = 0; i < 100; i++ )
  out << s;

答案 2 :(得分:1)

out.put(s);更改为out << s;

其次,一旦完成文件和流的处理,关闭它们是一个好习惯。它可以防止不必要的内存泄漏。所以在返回之前或完成文件处理后放out.close()