[英]Issue with reading in integers from a text file into an array
我正在开发一个电影数据库,该数据库允许用户输入带有标题、导演和发行年份的电影。 然后,数据库将所有 3 个输入保存为 2 个字符串(标题和导演)和 1 个 int 值(RY)用于发布年份,并将所有这些输入一起存储到 1 个文本文件中。 但是,我想从最新年份到最旧年份对电影进行排序,但是当我们想从文本文件中读取 integer 到数组中时,排序方法除了按照用户输入的相同顺序打印出电影之外什么也不做他们。 有没有办法将文本文件中的整数放入数组中? 下面是排序方法。 我们想要在数据库中的电影数量是 7。
void sort()
{
string Title;
string fileName;
string Director;
int RY;
int array [7] = { };
int temp;
int p;
fstream file("directory.txt");
for(int i = 0; i < 7; ++i)
{
file >> array[i];
}
for (int i = 1; i < sizeof(array); i++) {
temp = array[i]; //temp = 3
p = i -1; // p = 1
while( p >=0 && array[p] > temp){
array [p + 1] = array [p];
p = p-1; //p = 0
}
array [p + 1] = temp;
}
for (int i = 7 - 1; i >= 0; i--)
cout << array[i];
cout << "Entire Movie database" << endl;
cout << "------------------------" << endl;
ifstream dir("directory.txt");
while (dir >> Title >> Director >> RY){
cout << Title << ' ' << Director << ' ' << RY << endl;
}
main();
}
您的自定义排序过程(可能)会做它应该做的任何事情:它对array
中的整数进行排序。 以下代码只是读取文件的内容并按照读取的顺序输出:
ifstream dir("directory.txt");
while (dir >> Title >> Director >> RY){
cout << Title << ' ' << Director << ' ' << RY << endl;
}
我想知道您如何期望第一次从文件中读取 7 个整数,然后第二次读取所有四个字段。 也许您认为字符串值会被跳过? 他们不会
您的代码中还有其他问题。 例如, sizeof(array)
不返回元素的数量,而是以字节为单位的大小。 还有一件事:你为什么要从你的sort
function 中调用main
?
你为什么要重新发明轮子? 将值读入结构,将它们存储在向量中,然后使用std::sort
过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.