我试图读取文本文件中的条目并将其放入类中.文本文件的结构如下:
ABCD
3.00
2
6.00
-
Run Code Online (Sandbox Code Playgroud)
进入一个班级:
typedef struct item
{
char *name;
double uprc;
double cost;
int qty;
} item;
Run Code Online (Sandbox Code Playgroud)
"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;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道在最里面的while循环中该做什么.此外,此代码看起来不正确.
我该如何编码呢?
如果您只使用C++提供的工具,这会变得更加简单.
鉴于:
class item
{
public:
std::string name;
double uprc;
double cost;
int qty;
};
Run Code Online (Sandbox Code Playgroud)
你可以做(包括<string>,<fstream>和之后<iostream>):
std::ifstream input(PATH);
item i;
std::getline(input, i.name);
input >> i.uprc;
input >> i.qty;
input >> i.cost;
Run Code Online (Sandbox Code Playgroud)
使用的原因std::getline是读取整行,如果你这样做,input >> i.name;它只会读到第一个空白字符,所以它不适用于带空格的名字.
或者,您可以提供自己的,operator>>以便您可以做到input >> i;.另请注意,此处未进行错误检查,因此您需要自行添加.
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |