当前位置:  开发笔记 > 编程语言 > 正文

用C++创建文件

如何解决《用C++创建文件》经验,为你挑选了3个好方法。

我想用C++创建一个文件,但我不知道该怎么做.例如,我想创建一个名为的文本文件Hello.txt.

谁能帮我?



1> James Thomps..:

一种方法是创建ofstream类的实例,并使用它来写入您的文件.这是一个包含一些示例代码的网站的链接,以及有关大多数C++实现可用的标准工具的更多信息:

流参考

为了完整起见,这里有一些示例代码:

// using ofstream constructors.
#include 
#include   

std::ofstream outfile ("test.txt");

outfile << "my text here!" << std::endl;

outfile.close();

您想使用std :: endl来结束您的行.另一种方法是使用'\n'字符.这两个东西是不同的,std :: endl刷新缓冲区并立即写入输出,而'\n'允许outfile将所有输出放入缓冲区,并可能稍后写入.


@Grant Limberg:'\n'还会写出正确的平台特定换行符 - 它由ostream内部结构合适翻译.
更不用说std :: endl也会写出正确的平台特定换行符字符串.
对Limberg:那是错的."endl:Effects:调用os.put(os.widen('\n')),然后调用os.flush()" - C++标准,27.6.2.7/1
@James Thompson:使用std :: endl的唯一原因是,如果您确实需要保证将缓冲区刷新到文件中。否则,这是不必要的悲观(文件I / O非常昂贵!)。
当使用ofstream写入文件时,则不会实现文件锁定。其他人可以读取半写的文件,也可以其他人打开另一个流并同时写入。

2> French Boiet..:

使用文件流执行此操作.关闭a时std::ofstream,将创建该文件.我个人喜欢以下代码,因为OP只要求创建一个文件,而不是写入它:

#include 

int main()
{
    std::ofstream file { "Hello.txt" };
    // Hello.txt has been created here
}

临时变量file在创建后立即销毁,因此关闭流,从而创建文件.



3> Sean Bright..:
#include 
#include 

int main() {
  std::ofstream o("Hello.txt");

  o << "Hello, World\n" << std::endl;

  return 0;
}


使用std :: endl时,字符串中的\n是多余的.
流被破坏时刷新,因此在这种情况下std :: endl完全是多余的.但是,"返回0"绝对不是多余的.C中的常见情况是暗示"返回0",但C++不是这样.
endl不仅仅是刷新:它也输出换行符.所以要么打印\n然后std :: flush,要么只使用std :: endl.
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有