我编写了一个小程序来确定从文件中读取的最大和最小数字。它适用于所有正整数。然而,当涉及到负整数时,事情似乎已经破裂。
int get_largest(std::ifstream& fin)
{
int largest, container;
fin>>container;
largest = container;
while (fin>>container)
{
if (container>largest)
{
//bool check = (container>largest);
largest = container;
}
}
return largest;
}
这是主要功能
#include <iostream>
#include <fstream>
int get_largest(std::ifstream& fin);
int main( int argc, const char * argv[])
{
using namespace std;
ifstream fin("numbers.dat");
int smallest_value = get_smallest(fin);
int largest_value = get_largest(fin);
cout<<"The smallest value is "<<smallest_value<<endl;
cout<<"The largest value is "<<largest_value<<endl;
return 0;
}
我在ifstream中传递了一个数字列表,就像这样
1
2
4
10
-2
输出表示最大的数字是-2而不是10.我尝试使用有符号整数,但它没有帮助。
感谢您的时间!