Чтение цифр из файла и сохранение их в десятичном формате вместо ASCII в C++
Я пытаюсь прочитать одну цифру из числа, хранящегося в текстовом файле. У меня есть следующее:
int main() {
int test;
std::ifstream inFile("testNum.txt");
test = inFile.get();
std::cout << test << std::endl;
}
Число в testNum выглядит примерно как 95496993, и я просто хочу прочитать одну цифру за раз.
При распечатке "тестовой" переменной я получаю число 57, которое на самом деле является числом ASCII для цифры 9.
Как я могу прочитать файл, чтобы сохранить действительную цифру вместо значения ASCII?
Я также пытался привести к int с int a = int(test)
но это не сработало., Моя конечная цель - уметь читать каждую цифру числа по отдельности и хранить их где-то отдельно.
Спасибо.
2 ответа
Попробуй использовать:
char test;
Или же:
std::cout << (char)test << std::endl;
Кодировка std::cout данных зависит от типа элемента, который вы хотите вывести.
В этом случае вы хотите вывести '9' как цифру ASCII, а не 57 как ее целочисленное представление (char vs int).
Типичный C-способ преобразования чисел ASCII в int
это использовать что-то вроде
test=in.GetFile()-'0' // or use 48 instead of '0'
Таким образом, вы получите число 9 в качестве значения для test
вместо 57.