阅读数字列表并排序C.

阅读数字列表并排序C.,第1张

概述我正在尝试从文件中读取数字列表,并通过将它们读入数组然后对数组内容进行排序来对它们进行排序.但我得到了 error:incompatible types in assignment of 'std::basic_ostream<char, std::char_traits<char> >' to 'int [1]' 我对编程很新,这是我第一次使用C语言 谁能告诉我如何将数字列表写入数组,以便我可以 我正在尝试从文件中读取数字列表,并通过将它们读入数组然后对数组内容进行排序来对它们进行排序.但我得到了

error:incompatible types in assignment of 'std::basic_ostream<char,std::char_traits<char> >' to 'int [1]'

我对编程很新,这是我第一次使用C语言
谁能告诉我如何将数字列表写入数组,以便我可以对它们进行排序?
这是我有的:

#include <fstream>#include <iostream>#include <iomanip>#define ANYSIZE_ARRAY 1using std::cout;using std::endl;int main(){  const char* filename = "test.txt";  std::ifstream inputfile(filename);  int numbers[ANYSIZE_ARRAY];  int i,key;  // Make sure the file exists  if(!inputfile)  {    cout << endl << "The file is corrupt or does not exist. " << filename;    return 1;  }  long n = 0;  while(!inputfile.eof())  {    inputfile >> n;    numbers = cout << std::setw(10) << n;  }  for(int j=1;j<5;j++)    {        i=j-1;        key=numbers[j];        while(i>=0 && numbers[i]>key)        {                    numbers[i+1]=numbers[i];                    i--;        }        numbers[i+1]=key;    }    //display sorted array    cout<<endl<<"Sorted Array\t";     for(i=0;i<5;i++)       cout<<numbers[i]<<"\t";    cout<<endl;}
解决方法 导致错误的行是:

numbers = cout << std::setw(10) << n;

我不太确定你在这里尝试做什么,看起来你只想打印它,在这种情况下数字=不需要.

用于读取所有数据的循环结构也存在问题.行:while(!inputfile.eof())不是惯用的C,也不会做你想要的. See here for a discussion on that issue(和here).

作为参考,您可以通过使用std :: sort来减少工作量

#include <iterator>#include <algorithm>#include <vector>#include <fstream>#include <iostream>int main() {  std::ifstream in("test.txt");  // Skip checking it  std::vector<int> numbers;  // Read all the ints from in:  std::copy(std::istream_iterator<int>(in),std::istream_iterator<int>(),std::back_inserter(numbers));  // Sort the vector:  std::sort(numbers.begin(),numbers.end());  // Print the vector with tab separators:   std::copy(numbers.begin(),numbers.end(),std::ostream_iterator<int>(std::cout,"\t"));  std::cout << std::endl;}

这个程序还使用std :: vector而不是数组来抽象“我的数组应该有多大?”问题(你的例子看起来可能存在问题).

总结

以上是内存溢出为你收集整理的阅读数字列表并排序C.全部内容,希望文章能够帮你解决阅读数字列表并排序C.所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存