从文件中读取到另一个点C ++

时间:2015-09-12 02:18:10

标签: c++ file input io

所以我有一个清单

  

{“ID”:“55e5f0c8ace3e”,“nombre”:“Jacqueline”,“apellido”:“Charlet”,“sobrenombre”:“”,“edad”:“30”,“caracteristicas”:“”, “comentario”: “”,

我需要更改该列表并以正确的方式将其放入: ID:55e5f0c8ace3e Nombre:杰奎琳 Apellido:...... 等。

试过这个:

#include <iostream>
#include <fstream>
using namespace std;

ifstream datos("datos.txt");
ofstream final("final.txt");

int main(){
    char valor;
    if(!datos)
    {
        cout << "error";
    }
    else
    {
        while(!datos.eof())
        {
            datos.get(valor);
            if(valor == 'I' && datos.peek() == 'D')
            {
                 cout << "I can read" << endl;
            }
        }
    }
}

我试图用C ++做这个,这是正确的方法吗?我曾尝试过一些方法,但我不知道如何从一个点读到另一个点,我的意思是从双coma中读取ID并在其他双coma上完成。 提前致谢

1 个答案:

答案 0 :(得分:0)

引入一个整数状态变量,描述您所处的文件的哪个部分。然后根据该字符解释每个字符。例如,最初它是0.一旦遇到&#34;它就变为1 - 这意味着你正在读一个名字。如果state为1,并且字符不是&#34;&#34;,则在某些字符串变量中累积字符。一旦遇到引号字符且状态为1,则表示名称已结束。等等。

如果这不是家庭作业,谷歌的C ++ JSON解析器。这是股票问题,已经解决了一千次。

另外,请不要编辑答案 - 请发表评论。