Προς το περιεχόμενο

πινακες αγνωστου μεγέθους c/c++


miza

Προτεινόμενες αναρτήσεις

Δημοσ.

Πως μπορώ να φτιάξω σε c/c++ ένα πινακα που το μέγεθος του θα αναπροσδιορίζεται ανάλογα με το πλήθος των δεδομένων που θέλω να αποθηκεύσω;

Δημοσ.
>
int *Matrix
Matrix =(int *) malloc(CountOfData * Sizeof(int));
if (Matrix) {
 for (i=0; i<CountOfData;i++) 
   Matrix[i] = i;
}
free(Matrix)

Δημοσ.

Για C++ καθαρά μπορείς να χρησιμοποιήσεις std::vector, εδώ μπορείς να βρεις περισσότερες πληροφορίες: http://www.cppreference.com/wiki/stl/vector/start . Αν δεν ενδιαφέρεσαι για C++ ή δεν γνωρίζεις από κλάσεις και πως τις χρησιμοποιείς μπορείς να χρησιμοποιήσεις την παραπάνω λύση.

Δημοσ.
thx θα κoιταξω και τις 3 περιπτώσεις

 

άμα θες απο αρχείο τοτε πρωτα θα πρέπει να διαβάσεις πόσες γραμμές εχει:

 

int cnt_file_lines()

{

ifstream w;//ανοιξε το αρχείο

std::string a;//δήλωση μεταβλητής a ως string ακολουθεία

// χαρακτήρων/γραμμή

int k=1; //μετρητής γραμμών =1

w.open("file_name.dta", ios::binary|ios::in);//ανοιξε το αρχείο

//για text ("file_name.txt")

if(!w)

cerr<<"file not fount!"<<endl;

 

 

std::getline(w,a,'\n');//διαβασε την πρωτη γραμμή

//k=1

 

while(!w.eof())//οσο δεν είναι στο τελος του αρχείου

{

 

std::getline(w,a,'\n');//διαβασε γραμμή

k++;//αυξησε τον μετρητή γραμμών κατα 1

}

 

 

w.close();

return k; //επέστρεψε το πλήθος των γραμμών

}

 

main()

{

int cntcrs=cntcourse(); //η μεταλβητή int cntcrs παίρνει το πληθος των γραμμών

// του αρχειου

string* spin; //δήλωση δυναμηκού πινακα string,char ,double, int

spin=new string[cntcrs];// δεσμέυσε μνήμη spin=new string[πλήθος γραμμών];

for(int i=0; i<cntcrs; i++)

{

//επεξεργασία πινακα

 

}

 

 

delete spin[];//απελευθέρωσε την μνημη

}

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...