Нижеприведенный код работает для каждого символа I, за исключением £
или ¬
.isdigit поднимает утверждение отладки при вводе £ и ¬
Почему я получаю сообщение об ошибке отладки?
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main() {
string input;
while (1) {
cout << "Input number: ";
getline(cin, input);
if (!isdigit(input[0]))
cout << "not a digit\n";
}
}
Всегда полезно скопировать/вставить точное сообщение об ошибке. В противном случае мы должны угадать. –
Какая у вас локаль? Есть ли в ASCII? Есть ли в UTF-8? Являются ли эти многобайтовые символы? –
Что такое компилятор/библиотека и версии? – sehe