将数字从文件存储到数组中

时间:2018-12-01 14:07:06

标签: c++ arrays recursion

我需要做一个将int数存储到Array中的程序。 不是向量,而是数组。另外,我必须使用递归。谢谢您的帮助。

#include <iostream>

#include <fstream>
#include <vector>
using namespace std;

int counter(ifstream& inData){
int i;

if (inData >> i)
    return counter(inData)+1;

else return 0;

}

void upload(ifstream& inData, int myArray[], int ArrSize){
 int i;

 if (!inData.eof()){
   inData >> i;
   myArray[ArrSize]=i;
   upload(inData, myArray, ArrSize+1);}

 else
    return;

}


int main(){

ifstream inData;
inData.open("data.txt");

cout << counter(inData);
int vettore[counter(inData)];

upload(inData, vettore, 0);

cout << "   " << vettore[0];

//for (int k=0; k<(counter(inData)); k++)
  //  cout << v[k];

inData.close();

return 0;
}

1 个答案:

答案 0 :(得分:0)

*****已解决*****

包括

包括

使用命名空间标准;

int计数器(ifstream&inData){

int i;

if (inData >> i)
    return counter(inData)+1;

else return 0;
}

void arrayUp(ifstream&inData,int vec [],int len){

if (len==0) return;

else{
    int num;
    inData >> num;
    vec[len]=num;
    arrayUp(inData, vec, len-1);
}

}

void arraySort(int vec [],int len){

int temp;

if (len==0)
    return;

for(int i=0; i<len; i++){

    if (vec[i+1]<vec[i]){
        temp=vec[i];
        vec[i]=vec[i+1];
        vec[i+1]=temp;}
    }


arraySort(vec, len-1);

}

void printArray(int vec [],int len,int i){

if (i==len) return;

else {
    cout << vec[i] << " ";
    printArray(vec, len, i+1); }
}

int main(){

ifstream inData1, inData2;
inData1.open("data.txt");
inData2.open("data.txt");


int n=counter(inData1);
int myArray[n];


arrayUp(inData2,myArray,n);

inData1.close();
inData2.close();

arraySort(myArray, n);

printArray(myArray, n, 0);

return 0;

}