Я бы предложил изменить область действия ss
, чтобы увидеть предсказуемые результаты.
void closestPair(char inFile[50],char outFile[50])
{
int num1,num2;
int i =0;
string line ="";
ifstream fp(inFile);
while( getline(fp, line) )
{
stringstream ss; // Move it inside the loop.
ss<<line;
ss>>num1>>num2;
A[i].x = num1;
A[i].y = num2;
i++;
printf(" %d %d \n", num1, num2);
}
fp.close();
}
Еще лучше, построить std::ostringstream
из line
и использовать его для извлечения чисел.
void closestPair(char inFile[50],char outFile[50])
{
int num1,num2;
int i =0;
string line ="";
ifstream fp(inFile);
while( getline(fp, line) )
{
std::ostringstream ss(line);
ss>>num1>>num2;
A[i].x = num1;
A[i].y = num2;
i++;
printf(" %d %d \n", num1, num2);
}
fp.close();
}
См. Почему iostream :: eof внутри условия цикла (т. Е. `While (! Stream.eof ())`) считается неправильным? относительно while(!fp.eof())
.