c ++按元素编辑文本文件

时间:2015-03-23 18:52:58

标签: c++ file

我有一个txt文件,我保存按此顺序排列的信息:

Name somename
Age someAge
Address someAddress
...

我通过以下元素查找此信息:

if (myfile.is_open())
{
    while (myfile >> element1)
    {
        myfile >> element2;

        if (element1 == "Name")
            _name = element2; //element2 is someName in .txt file

        if (element1 == "Age")
            _age = element2; //element2 is someAge in .txt file
        ...
    }
    myfile.close();
}

依旧......

也可以使用ofstream以这种方式编辑txt文件吗?

1 个答案:

答案 0 :(得分:2)

  

"也可以使用ofstream以这种方式编辑txt文件?"

是的,这是可能的。只是不能立即操纵文件内容(正如您可能正在考虑的那样)。

  1. 您使用std::ifstream逐行读入文件std::vector<std::string>变量
  2. 您可以根据需要使用各种std::string函数来操作这些行
  3. 您打开与std::ofstream相同的文件(使用std::iosbase::trunc标志打开)
  4. 您将所有std::vector<std::string>变量写入输出文件

  5. 作为@Jerry Coffin mentioned,您可以考虑在第一位创建操纵文件的备份。如果你这样做,你也可以利用操作单个记录,而无需读入完整的文件(可能导致内存问题,如果它真的很大)。