Я новичок в StackOverflow и в C ++, это мой первый пост.Цель этой функции - получить строку типа:
1224435 1998-11-02 23:43:54 2514352842 00:01:22 01.25
callNumber, dateOfCall, hourOfCall numberCalled durationOfTalk costOfTalk
и затем введите его в правильных переменных.Строка оставлена в числах. (Школьное задание) Я ищу правильный способ проверить, является ли поток строки, который вводится в long или short, числом.Вся помощь приветствуется.Вот что я имею в виду:
void lineCutter(string nameOfFile,sortedList * & pHead)
{
ifstream telephones(nameOfFile);
stringstream converter;
string Bcontainer ;
long numC;
short dateY;
short dateM;
short dateD;
short talkH;
short talkM;
short talkS;
long numG;
short durationH;
short durationM;
short durationS;
short costZ;
short costG;
if(telephones)
{
int counter = 0;
cout<< "I'm in"<<endl;
while(getline(telephones,Bcontainer))
{
for(int i = 0; i<Bcontainer.size(); i++)
{
if(Bcontainer[i] == 32)
{
counter++;
}
}
if(counter == 5)
{
replace (Bcontainer.begin(), Bcontainer.end(), ':', ' ');
replace (Bcontainer.begin(), Bcontainer.end(), '.', ' ');
replace (Bcontainer.begin(), Bcontainer.end(), '-', ' ');
converter << Bcontainer ;
converter >> numC >> dateY >> dateM >> dateD >> talkH >> talkM >> talkS >> numG >> durationH >> durationM >> durationS >> costZ >> costG;
if( all vars are in correct format )// Are they numbers?
pHead = new sortedList { numC , dateY , dateM , dateD , talkH , talkM , talkS , numG , durationH , durationM , durationS , costZ , costG, pHead};
} //pHead is a head pointer of a single linked list
}
counter = 0;
}
telefony.close();
}
else{
cout<<"Cannot open."<<endl;
}
}