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.所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)