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è?
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;
}
ringrazio chiunque mi possa indicare l'errore.