我是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;
}
答案 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()
。