【发布时间】:2017-03-25 07:33:27
【问题描述】:
我正在编写一个程序来跟踪书店库存(起始代码)。该程序的功能之一是它可以以或多或少的格式输出整个库存。我已经让它打印出没有空格或空格的内容。
我将文件读入初始化为结构的数组:
struct Book //declare struct
{
int ISBN; //ISBN within struct
std::string Title; //Title within struct
std::string Author; //Author within struct
std::string Publisher; // Publisher within struct
int Quantity; //Quantity within struct
double Price; //price within struct
};
.txt 文件的内容作为其特定的数据类型被读入每个内存分配,然后每一个都被打印出来。
/* READ CONTENTS OF INVENTORY*/
string readInventory(ifstream &readFile) //define readInventory, pass it a refrence to an infile
{
const int ARRAY_size = 100;
string_book read_out_inventory[ARRAY_size];
ifstream inFile;
string stub = "\n\n***** COMPLETED: files read ******\n\n";
string buffer = " ";
inFile.open("inventory.txt");
if (!inFile.eof())
{
for (int i = 0; i < ARRAY_size; ++i)
{
inFile >> read_out_inventory[i].ISBN;
inFile >> read_out_inventory[i].Title;
inFile >> read_out_inventory[i].Author;
inFile >> read_out_inventory[i].Publisher;
inFile >> read_out_inventory[i].Quantity;
inFile >> read_out_inventory[i].Price;
}
}
cout << setw(43) <<"The books are: \n\n" ;
for (int ARRAY_read = 0; ARRAY_read < ARRAY_size; ARRAY_read++)
{
cout << &read_out_inventory[ARRAY_read].ISBN << endl;
cout << &read_out_inventory[ARRAY_read].Title << endl;
cout << &read_out_inventory[ARRAY_read].Author << endl;
cout << &read_out_inventory[ARRAY_read].Publisher << endl;
cout << &read_out_inventory[ARRAY_read].Quantity << endl;
cout << &read_out_inventory[ARRAY_read].Price << endl;
}
return stub;
}
我遇到的问题(在其他明显的问题中)是输出是:
0x7fff5fbfe250
0x7fff5fbfe268
0x7fff5fbfe280
0x7fff5fbfe288
0x7fff5fbfe290
0x7fff5fbfe298
0x7fff5fbfe2b0
0x7fff5fbfe2c8
0x7fff5fbfe2e0
0x7fff5fbfe2e8
0x7fff5fbfe2f0
0x7fff5fbfe2f8
0x7fff5fbfe310
0x7fff5fbfe328
0x7fff5fbfe340
0x7fff5fbfe348
0x7fff5fbfe350
0x7fff5fbfe358
0x7fff5fbfe370
0x7fff5fbfe388
0x7fff5fbfe3a0
0x7fff5fbfe3a8
0x7fff5fbfe3b0
0x7fff5fbfe3b8
0x7fff5fbfe3d0
0x7fff5fbfe3e8
0x7fff5fbfe400
0x7fff5fbfe408
0x7fff5fbfe410
...
我什至不完全确定我的问题是什么,因此我们将不胜感激。我看到这个问题已经在另一个地方得到了回答,但我没有完全理解。
.txt 文件如下所示:
20451
My First Book
Mark Lusk
Pearson Publishing
40
45.34
9780316
Brown Family
Mason Victor
Little Brown
36
105.99
1349877
Story of My Life
Norah M Jones
CreateSpace Independent Publishing Platform
20
18
1234567
The Big Book
Mypals Pennyweather
GreenThumb
4
13.23
【问题讨论】:
-
我将来也需要对这些书进行排序,因此拥有一个结构数组将对将来的校对很有用。
-
您正在打印结构成员的地址。写
cout << read_out_inventory[ARRAY_read]而不是cout << &read_out_inventory[ARRAY_read]。只需删除&。 -
删除
cout << ...中的所有&s