C++ std::ofstream:可以打开文件但不能追加
我的程序以增量方式打开并写入多个文件,但在某些看似任意的点上,将文本附加到已存在的文件失败。下面是一段令人不快的代码:C++ std::ofstream:可以打开文件但不能追加,c++,linux,C++,Linux,我的程序以增量方式打开并写入多个文件,但在某些看似任意的点上,将文本附加到已存在的文件失败。下面是一段令人不快的代码: bool append_to_file(std::string const &Path, std::string const &What) { std::ofstream FStream(Path, std::ios::out | std::ios::app); if (!FStream) { std::cerr << "O
bool append_to_file(std::string const &Path, std::string const &What) {
std::ofstream FStream(Path, std::ios::out | std::ios::app);
if (!FStream) {
std::cerr << "OPEN FAILED" << std::endl;
return false;
}
FStream << What;
if (!FStream) {
std::cerr << "WRITE FAILED" << std::endl;
return false;
}
return true;
}
bool-append\u-to\u文件(std::string-const&Path,std::string-const&What){
流FStream的std::of(路径,std::ios::out | std::ios::app);
如果(!FStream){
这对我来说很有效:
#include <string>
#include <fstream>
#include <iostream>
int append_to_file(std::string const& Path, std::string const& What) {
std::fstream FStream(Path,std::ios_base::app);
if (!FStream) {
std::cerr << "OPEN FAILED" << std::endl;
return 1;
}
FStream << What;
if (!FStream) {
std::cerr << "WRITE FAILED" << std::endl;
return 2;
}
return 0;
}
int main() {
int res = append_to_file("Tester.txt", "HIIII");
std::cout << res;
}
#包括
#包括
#包括
int append_到_文件(std::string const&Path,std::string const&What){
std::fstream fstream(路径,std::ios_base::app);
如果(!FStream){
std::cerr您的函数对我来说非常有效,无论文件是否存在。不要写入WRITE FAILED
,而是执行std::cerr您流中的错误代码是什么?@Barmar--no.errno
必须是宏。[errno]/1.@TEDLYNGOM:Thread ID没有改变。我认为除了clang或libstdc++的一些问题之外,没有一个合理的解释。你能把它出现的确切的“字符串形式”包括进来吗?可能是因为转义引号有些奇怪。