Salve, ho scritto il seguente programma per risolvere un'esercizio e l'algoritmo funziona, il mio problema è chenon aquisisce dati a più di 4 cifre, cioè ad esempio se in input ho "12345678" prende come dato "1234" perchè?
ringrazio chiunque mi possa indicare l'errore.codice:#include <iostream> #include <fstream> #include <cstdlib> #include <vector> using namespace std; struct quadro { int x; //ascissa; int y; //ordinata; }; struct rete { int x; //ascissa int y1; //ordinata sup; int y2; //ordinata inferiore }; ifstream in; ofstream out; vector <quadro> pescosi; vector <rete> pescati; vector <int> comandi, comandi2; int pesca=0; quadro pos; int main() { in.open("input.txt"); int appo; in>>appo; pescosi.resize(appo); rete part; in>>part.x; in>>part.y1; part.y2= part.y1; pescati.push_back(part); for (int i=0; i<pescosi.size(); i++) { in>>pescosi[i].x; in>>pescosi[i].y; }; in>>appo; for (int i=0; appo!=0; i++) { comandi.push_back(appo); in>>appo; }; in>>appo; for (int i=0; appo!=0; i++) { comandi2.push_back(appo); in>>appo; }; quadro barca1, barca2; barca1.x= part.x; barca1.y= part.y1; barca2= barca1; rete nuovo; for (int i=0; i<comandi.size(); i++) { for (int j=comandi[i]; j<0; j++) { nuovo.x= ++barca1.x; nuovo.y1= barca1.y; nuovo.y2= part.y2; pescati.push_back(nuovo); }; for (int j=comandi[i]; j>0; j--) { pescati[pescati.size()-1].y1++; barca1.y++; }; }; for (int i=0; i<comandi2.size(); i++) { for (int j=comandi2[i]; j<0; j++) { barca2.x++; pescati[barca2.x-part.x].y2= barca2.y; }; for (int j=comandi2[i]; j>0; j--) { ++barca2.y; }; }; for (int i=0; i<pescosi.size(); i++) { if ((pescosi[i].x<pescati[0].x)||(pescosi[i].x>pescati[pescati.size()-1].x)) continue; int x = pescosi[i].x-part.x; if ((pescosi[i].y<=pescati[x].y1)&&(pescosi[i].y>=pescati[x].y2)) {pesca++; continue;} if ((pescosi[i].y>=pescati[x].y1)&&(pescosi[i].y<=pescati[x].y2)) pesca++; }; out.open("output.txt"); out<<pesca<<endl; return 0; }