是-2> 10比较整数

时间:2017-08-11 03:13:17

标签: c++ integer icomparable

我编写了一个小程序来确定从文件中读取的最大和最小数字。它适用于所有正整数。然而,当涉及到负整数时,事情似乎已经破裂。

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.我尝试使用有符号整数,但它没有帮助。

感谢您的时间!

0 个答案:

没有答案