一次读取输入一个字符

时间:2014-12-24 08:00:59

标签: c++ io

例如,将“1912”作为输入,如何解析此输入并填充int a[]以使其具有a[0]=1a[1]=9等等。

如果通过for循环完成,则需a[0]=1912而非a[0]=1

for(int i=0;i<n;i++){
    cin>>a[i];
}

1 个答案:

答案 0 :(得分:1)

使用getchar逐个字符阅读。你的循环看起来像这样:

for(int i = 0; i < n; i++)
{
  a[i] = getchar();
  a[i] -= '0';
}

getchar的返回值将是输入字符的ascii代码。由于您尝试以数字形式读取输入,因此可以通过a[i] -= '0'进行转换。

当然,上面的循环不会进行任何输入清理,并假设您确切知道您正在阅读的格式。您可以使用feofferror来获取错误。