这应该很简单,我发现第一个参数是数组名,第二个是数组的大小+数组名。但是,它似乎根本没有排序,实际上它什么也没做,也没有在控制台上写任何东西,我是不是在做傻事?
int main()
{
readFromFile();
system("pause");
return 0;
}
void readFromFile()
{
string line;
int i = 0;
int j;
ifstream file("ACW2_data.txt");
if(file.is_open())
{
getline(file, line);
while (!file.eof())
{
file >> numbers[i];
i++;
int elements = sizeof(numbers) / sizeof(numbers[0]);
**sort(numbers, numbers + elements);**
}
file.close();
}
else
{
cout << "Cant open the file" << endl;
}
for(j = 0; j < i; j++)
{
cout << numbers[j] << endl;
}
system("pause");
}
大家怎么看?
最佳答案
while (!file.eof())
{
file >> numbers[i];
i++;
int elements = sizeof(numbers) / sizeof(numbers[0]);
**sort(numbers, numbers + elements);**
}
file.close();
到
while (file >> numbers[i])
{
++i;
}
sort( numbers, numbers + i );
file.close();
或
std::vector<your_int_type> numbers;
your_int_type tmp;
while (file >> tmp)
{
numbers.push_back(tmp);
}
std::sort( numbers.begin(), numbers.end() );
file.close();
关于c++ - std::sort() C++ 不工作但它很简单,为什么 :( 一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5707977/