[英]Reading input one character at a time
例如,给定“ 1912”作为输入,我如何解析此输入并填充int a[]
,使其具有a[0]=1
, a[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'
。
当然,以上循环不会进行任何输入清理,并假定您完全知道要读取的格式。 您可以使用feof
和ferror
来获取错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.