Извлечение числа из строки, такой как целое или двойное число

Мне трудно думать о том, как извлечь число, например, int или double, из строки, извлеченной из функции getline ().

//Пример:

string data = "";
fstream inFile;

// Файл содержит:

"Hello today is 83.3 degrees Fahrenheit."

// используем функцию getline

getline(inFile, data);

// извлечь номер из строковых данных

Благодарю вас

0

Решение

Вы можете сделать следующее

getline(inFile, data);

std::istringstream iss;
iss.exceptions(std::istream::failbit | std::istream::badbit );

iss.str(data);
double dTemp = 0;

while( iss.good() ){

try{
iss >> dTemp;
}
catch(std::istream::failure &e ){
/* Do your error check over here */
}

}

Вы также хотите узнать больше о C ++. Проверь это ссылка на сайт

Надеюсь это поможет.

0

Другие решения

Вы можете использовать sscanf, если вы готовы включить cstdio.

Следующая ссылка на страницу справки поможет вам: —

http://linux.die.net/man/3/sscanf

пример

char foo[] = "foo bar 12 baz";
int qux;
sscanf(foo, "foo bar %d baz", &qux);
// qux will be assigned 12

или же

char foo[] = "foo bar 12.5 baz";
double qux;
sscanf(foo, "foo bar %lf baz", &qux);
// qux will be assigned 12.5

Вам, очевидно, нужно будет адаптировать это к вашему сценарию и принять во внимание различные вопросы безопасности.

0

По вопросам рекламы [email protected]