СИ
Светлана Иванова

Как инициализировать поля класса типа int из строки

вводится строка со временем (hh🇲🇲ss) надо вытащить оттуда секунды, минуты и часы. это все на c++

Евгений
Евгений

Без обработки ошибок можно так:

#include
#include
#include
#include

using namespace std;

int main() {
int hh, mm, ss;
char dl;

// со стандартного ввода
cout << "введите время в формате hh🇲🇲ss: ";
cin >> hh >> dl >> mm >> dl >> ss;
cout << "введено: " << hh << ':' << setfill('0')
<< setw(2) << mm << ':' << setw(2) << ss << endl;

// из строки
string ts("12:13:14");
istringstream iss(ts);
iss >> hh >> dl >> mm >> dl >> ss;
cout << "\nиз строки: " << hh << ':' << setfill('0')
<< setw(2) << mm << ':' << setw(2) << ss << endl;

return 0;
}

ВЛ
Вероника Лукьянова

во что загружается строка?
Как же это просто делается в Qt
QStringList list=strin.split(":");
ну а потом int hh=list.at(i).toInt;

НИ
Наталья Иващенко

тебе надо тупо вытащить из строки числа и запихать их в интовые переменные? Если так, то что-то вроде этого:

#include
#include
#include
#include

using namespace std;

void main()
{
char *tim = new char[256];
int h, m, s, k = 0;
cout << "Vvedite vremya: ";
cin >> tim;
for (unsigned char i = 0; i < strlen(tim); i++)
{
if ((tim[ i ] == ':') && (k == 0))
{
k++;
char *buf = new char[2];
buf[0] = tim[ i - 2 ];
buf[1] = tim[i - 1];
h = atoi(buf);
delete []buf;
continue;
}
if ((tim[ i ] == ':') && (k == 1))
{
k++;
char *buf = new char[2];
buf[0] = tim[ i - 2 ];
buf[1] = tim[i - 1];
m = atoi(buf);
buf[0] = tim[ i + 1 ];
buf[1] = tim[i + 2];
s = atoi(buf);
delete []buf;
continue;
}
}
cout << "\nResult: " << h << " " << m << " " << s;
getch();
return;
}

Ad
Adenios

разбиваешь строку на подстроки, на си++ по моему встроенной функции нет, так что придётся либо циклом разбивать либо ещё как, поищи аналоги джававого split и пхпшного explode, полученые подстроки преобразовать в инт через atoi или StrToInt

Похожие вопросы
Как в С++ перегрузить оператор int+класс (не класс+int)
С++ работа со строками, классы
Можно ли преобразовать тип int в float без потери данных?
C# + MySQL Как определить тип полей в строке?
Даные какого типа сохраняются в полях редактирования класса TEdit?
Как инициализировать переменную типа xml из существующего файла
помогите преобразовать строку в int массив (с++)
Помогите инициализировать структуру (с++) struct data { string NComputer; string *Name; int number; int *Priority; };
Объясните что делает эта строка int & operator [] (int index); на С++ и зачем она?
непонятки с int _tmain(int argc, _TCHAR* argv[])