草庐IT

c++ - fstream 不会创建文件

这个问题在这里已经有了答案:std::fstreamdoesn'tcreatefile(2个回答)关闭7年前。如果文本文件不存在,我只是尝试创建一个文本文件,而我似乎无法让fstream执行此操作。#includeusingstd::fstream;intmain(intargc,char*argv[]){fstreamfile;file.open("test.txt");file我是否需要在open()函数中指定任何内容才能让它创建文件?我读过你不能指定ios::in因为那会期望一个已经存在的文件在那里,但我不确定是否需要为一个文件指定其他参数尚不存在。

c++ - 使用 fstream 读取每个字符,包括空格和换行符

我想用fstream来读取一个txt文件。我正在使用inFile>>characterToConvert,但问题是它省略了任何空格和换行符。我正在编写一个加密程序,所以我需要包含空格和换行符。完成此任务的正确方法是什么? 最佳答案 可能最好的方法是将整个文件的内容读入一个字符串,这可以很容易地使用ifstream的rdbuf()来完成。方法:std::ifstreamin("myfile");std::stringstreambuffer;buffer既然您已经从文件中获取了所有内容,那么您就可以使用常规的字符串操作了。而Tomek

c++ - 从 std::fstream 获取 FILE*

是否有(跨平台)方法从C++std::fstream获取CFILE*句柄?我问的原因是因为我的C++库接受fstreams并且在一个特定的函数中我想使用一个接受FILE*的C库。 最佳答案 简短的回答是否定的。原因,是因为std::fstream不需要使用FILE*作为其实现的一部分。因此,即使您设法从std::fstream对象中提取文件描述符并手动构建FILE对象,您也会遇到其他问题,因为您现在将有两个缓冲对象写入同一个文件描述符.真正的问题是为什么要将std::fstream对象转换为FILE*?虽然我不推荐,你可以试试看fu

c++ - 我需要关闭 std::fstream 吗?

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:DoIneedtomanuallycloseaifstream?我需要调用fstream.close()还是fstream是在销毁时关闭流的适当RAII对象?我在方法中有一个本地std::ofstream对象。我可以假设在退出此方法后文件总是关闭而不调用关闭吗?我找不到析构函数的文档。 最佳答案 我认为之前的答案具有误导性。fstream是一个合适的RAII对象,它确实在作用域结束时自动关闭,绝对没有没有当在范围结束时关闭就足够了手动调用close。特别是

c++ - 使用 C++ 文件流 (fstream),如何确定文件的大小?

我确定我刚刚错过了手册中的这一点,但是如何使用fstreamistream类确定文件的大小(以字节为单位)标题? 最佳答案 您可以使用ios::ate标志(和ios::binary标志)打开文件,因此tellg()函数会直接直接给你文件大小:ifstreamfile("example.txt",ios::binary|ios::ate);returnfile.tellg(); 关于c++-使用C++文件流(fstream),如何确定文件的大小?,我们在StackOverflow上找到一个

c++ - 如何从 POSIX 文件描述符构造 c++ fstream?

我基本上是在寻找fdopen()的C++版本。我对此进行了一些研究,这是其中似乎应该很容易的事情之一,但结果却非常复杂。我是否在这种信念中遗漏了什么(即它真的很容易)?如果没有,是否有一个好的图书馆可以处理这个问题?编辑:将我的示例解决方案移至单独的答案。 最佳答案 来自ÉricMalenfant的回答:AFAIK,thereisnowaytodothisinstandardC++.Dependingonyourplatform,yourimplementationofthestandardlibrarymayoffer(asano

c++ - 如何使用具有相对路径的 fstream 对象?

我是否总是必须为从std::fstream类实例化的对象指定绝对路径?换句话说,有没有办法只指定它们的相对路径,例如项目路径? 最佳答案 您也可以使用相对路径。但它们与您调用可执行文件的环境有关。这取决于操作系统,但所有主要系统的行为或多或少都与AFAIK相同。Windows示例://Filestructure:c:\folder\myprogram.exec:\myfile.txt//Callingcommandfromfolderc:\folder>myprogram.exe在上面的示例中,您可以使用“c:/myfile.txt

c++ - 如何使用具有相对路径的 fstream 对象?

我是否总是必须为从std::fstream类实例化的对象指定绝对路径?换句话说,有没有办法只指定它们的相对路径,例如项目路径? 最佳答案 您也可以使用相对路径。但它们与您调用可执行文件的环境有关。这取决于操作系统,但所有主要系统的行为或多或少都与AFAIK相同。Windows示例://Filestructure:c:\folder\myprogram.exec:\myfile.txt//Callingcommandfromfolderc:\folder>myprogram.exe在上面的示例中,您可以使用“c:/myfile.txt

c++ - 使用 fstream 附加到文件而不是覆盖

我正在尝试为我正在进行的项目创建一个基本的高分系统。我遇到的问题是,虽然我将名称写入我的主目录,但它们只是覆盖了以前的名称。目前我有这个:voidManagePoint::saveScore(stringName,intScore){ofstreamnewFile("scorefile.txt");if(newFile.is_open()){newFile为了测试,我像这样添加它们:runner->saveScore("Robert",34322);runner->saveScore("Paul",526);runner->saveScore("Maxim",34322);在加载显示时

c++ - 使用 fstream 附加到文件而不是覆盖

我正在尝试为我正在进行的项目创建一个基本的高分系统。我遇到的问题是,虽然我将名称写入我的主目录,但它们只是覆盖了以前的名称。目前我有这个:voidManagePoint::saveScore(stringName,intScore){ofstreamnewFile("scorefile.txt");if(newFile.is_open()){newFile为了测试,我像这样添加它们:runner->saveScore("Robert",34322);runner->saveScore("Paul",526);runner->saveScore("Maxim",34322);在加载显示时