繁体   English   中英

一次读取一个字符

[英]Reading input one character at a time

例如,给定“ 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];
}

使用getchar逐字符读取。 您的循环如下所示:

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

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

当然,以上循环不会进行任何输入清理,并假定您完全知道要读取的格式。 您可以使用feofferror来获取错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM