Чтение цифр из файла и сохранение их в десятичном формате вместо 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.

Другие вопросы по тегам