我正在尝试读取文本文件中的条目并将其放入类中。文本文件的结构如下:

ABCD
3.00
2
6.00
-


上一堂课:

typedef struct item
{
    char        *name;
    double      uprc;
    double      cost;
    int         qty;
} item;


“ ABCD”是名称,3.00是uprc,2是qty,6.00是cost

我该如何实施?到目前为止,我有:

void read()
{
    item i;
    FILE *f = fopen(PATH, "r");
    char *buf;
    int c, nl_ct = 0;
    while((c = getch(f)) != EOF){
        putchar(c);
        if(c == '\n'){
            nl_ct++;
            switch(nl_ct){
            case 1:
                {
                    char *buf;
                    while(fgets(buf, sizeof(buf), f))

                }
                break;
            }
        }
    }
}


但是,我不知道在最里面的while循环中该怎么做。另外,此代码看起来不正确。

我该如何编码?

最佳答案

如果仅使用C ++提供的工具,则这将变得更加简单。

鉴于:

class item
{
public:
    std::string name;
    double uprc;
    double cost;
    int qty;
};


您可以做(包括<string><fstream><iostream>之后):

std::ifstream input(PATH);
item i;

std::getline(input, i.name);
input >> i.uprc;
input >> i.qty;
input >> i.cost;


使用std::getline的原因是可以读取整行,如果只执行input >> i.name;,则它将一直读到第一个空格字符,因此不适用于带空格的名称。

或者,您可以提供自己的operator>>,以便仅执行input >> i;。还要注意,这里没有进行错误检查,因此您需要自己添加。

关于c - 将FILE *读入类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24521180/

10-11 23:31