I'm doing this school assignment and wrote this code, that creates a structure called "knjiga", that gets data about a book. But for some reason, the program lets me input only 2 full arrays of "knjige" (should be 15, not 2!).
Sorry if the variables are written in a foreign language, I just don't have time to change all of them, also, my school wants to use variables written in our language
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
struct knjiga{
string avtor;
string naslov_knjige;
string zalozba;
int letnica;
};
//input
void vnosKnjig(knjiga knjige[]){
for(int i = 0;i<15;i++){
getline(cin, knjige[i].avtor);
getline(cin, knjige[i].naslov_knjige);
getline(cin, knjige[i].zalozba);
fflush(stdin);
cin >> knjige[i].letnica;
fflush(stdin);
}
}
//output
void izpisKnjig(knjiga knjige[]){
for(int i = 0;i<15;i++){
cout << i+1 << ". Knjiga: " << knjige[i].avtor << " , " << knjige[i].naslov_knjige << " , " << knjige[i].zalozba << " , " << knjige[i].letnica << endl;
}
}
int main() {
struct knjiga knjige[15];
vnosKnjig(knjige);
izpisKnjig(knjige);
}
Here's something I've inputted, as a sample:
jkrowling
harry
mohorjeva
2004
rowling
potter
neki
After I entered "neki", the program already outputs, instead of going on. And here is the weirder output:
1. Knjiga: jkrowling , harry , mohorjeva , 2004
2. Knjiga: , rowling , potter , 0
3. Knjiga: , , , 4196163
4. Knjiga: , , , -2085287456
5. Knjiga: , , , -2087467936
6. Knjiga: , , , -984944128
7. Knjiga: , , , 6299720
8. Knjiga: , , , 1
9. Knjiga: , , , 0
10. Knjiga: , , , -984943888
11. Knjiga: , , , 6
12. Knjiga: , , , -2096610263
13. Knjiga: , , , 4198293
14. Knjiga: , , , 4198315
15. Knjiga: , , , 0