gpt4 book ai didi

c++ - 我无法使用 ofstream 函数

转载 作者:太空狗 更新时间:2023-10-29 20:33:09 25 4
gpt4 key购买 nike

您好,抱歉,如果答案对那些人来说很清楚。我对编程还很陌生,需要一些指导。

这个函数应该只将它接受的三个字符串参数之一写入我已经生成的 txt 文件。当我运行该程序时,该函数似乎工作正常,并且 cout 语句显示信息在字符串中并且确实成功通过。问题是运行程序后我去检查txt文件,发现它仍然是空白的。

我在 visual studio professional 2015 上使用 C++17。

void AddNewMagicItem(const std::string & ItemKey,
const std::string & ItemDescription,
const std::string &filename)
{
const char* ItemKeyName = ItemKey.c_str();
const char* ItemDescriptionBody = ItemDescription.c_str();
const char* FileToAddItemTo = filename.c_str();
std::ofstream AddingItem(FileToAddItemTo);
std::ifstream FileCheck(FileToAddItemTo);
AddingItem.open(FileToAddItemTo, std::ios::out | std::ios::app);
if (_access(FileToAddItemTo, 0) == 0)
{
if (FileCheck.is_open())
{
AddingItem << ItemKey;
std::cout << ItemKey << std::endl;
}
}
AddingItem.close(); // not sure these are necessary
FileCheck.close(); //not sure these are necessary
}

当您将字符串传递给 ItemKey 参数时,这应该会在 .txt 文件上打印出一条消息。

非常感谢您的帮助,再次请原谅我,因为我也是 stackoverflow 的新手,可能在格式化这个问题时犯了一些错误或者不够清楚。

补充:感谢所有回答此问题的人以及您提供的所有帮助。我感谢您的帮助,并想亲自感谢大家对此主题的帮助、评论和意见。愿你的代码每次都能编译通过,愿你的代码审查总是有评论。

最佳答案

正如之前的评论者/回答者所提到的,可以通过让 ofstream 对象的析构函数为您关闭文件并避免使用 c_str() 转换函数来简化您的代码。至少在 GCC v8 上,这段代码似乎可以满足您的要求:

#include  <string>
#include <fstream>
#include <iostream>


void AddNewMagicItem(const std::string& ItemKey,
const std::string& ItemDescription,
const std::string& fileName)
{
std::ofstream AddingItem{fileName, std::ios::app};

if (AddingItem) { // if file successfully opened
AddingItem << ItemKey;
std::cout << ItemKey << std::endl;
}
else {
std::cerr << "Could not open file " << fileName << std::endl;
}
// implicit close of AddingItem file handle here
}


int main(int argc, char* argv[])
{
std::string outputFileName{"foobar.txt"};
std::string desc{"Description"};

// use implicit conversion of "key*" C strings to std::string objects:
AddNewMagicItem("key1", desc, outputFileName);
AddNewMagicItem("key2", desc, outputFileName);
AddNewMagicItem("key3", desc, outputFileName);

return 0;
}

关于c++ - 我无法使用 ofstream 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56784290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com