我正在尝试读取文本文件中的条目并将其放入类中。文本文件的结构如下:
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/