Все решение, которое я нашел, похоже, использует atoll, но оно принимает char, когда у меня есть строка. Например, я прочитал ввод $ 100, поместил его в строку и проверил, равен ли первый символ $. Затем мне нужно преобразовать подстроку в длинный длинный тип.Как преобразовать строку в длинную длинную
int main() {
long long price;
string priceStr;
cin>>priceStr;
if (priceStr[0] == '$') {
price = convertToLongLong(priceStr.substr(1));//how?
}else{
cerr<<"error!";
}
}
Мой вход: $ 100 Спасибо!
EDIT: Возможно, я не делаю это надлежащим образом. Мой входной поток ID Название $ цена #quantity, как показано ниже, и мне нужно все номера, чтобы быть долго долго, а также проверить, если $ и # вздохи находятся в нужном месте:
1 TV $ 1500 # 50
2 LAPTOP $ 2000 # 30
Что бы вы ни делали, ** не используйте **. Как вы узнаете, было ли это число 0 или он столкнулся с ошибкой? Существуют 'stoll',' strtoll', строковые потоки, 'boost :: lexical_cast' и другие, которые обеспечивают проверку ошибок. – chris
... вам не нужно «долгое время» для хранения 100. – ApproachingDarknessFish
нужен длинный длинный, я просто использую 100 в качестве примера ... @ValekHalfHeart – Arch1tect