从文件中读取数字并将其存储为十进制而不是C ++中的ASCII

时间:2015-10-05 02:22:05

标签: c++ ifstream

我正在尝试从存储在文本文件中的数字中读取一位数字。我有以下内容:

int main() {
  int test;
  std::ifstream inFile("testNum.txt");
  test = inFile.get();
  std::cout << test  << std::endl;
}

testNum中的数字看起来像95496993,我只想一次读取一个数字。

打印出&#34;测试&#34;变量我得到数字57,实际上是数字9的ASCII数字。

如何读取文件以存储实际数字而不是ASCII值?

我也尝试使用int a = int(test)转换为int,但这不起作用。 。 我的最终目标是能够单独读取数字的每个数字并将它们分别存储在某处。

谢谢。

2 个答案:

答案 0 :(得分:1)

尝试使用:

char test;

或者:

std::cout << (char)test << std::endl;

std :: cout数据编码取决于您要输出的元素的类型。

在这种情况下,您想要输出&#39; 9&#39;作为ASCII数字,而不是57作为其整数表示(char vs int)。

答案 1 :(得分:0)

将ASCII数字转换为int的典型C方法是使用类似

的方法
test=in.GetFile()-'0' // or use 48 instead of '0'

这样你最终得到的数字是test而不是57。