c++程序看不懂

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:53:55
#include<iostream.h>
#include<stdio.h>
inline int number(char);
void main()
{
char a;
int n;
n=0;
while((a=getchar())!='\n')//'\n'?
{
if(number(a))
n++;
}
cout<<"the number of digital char is"<<n<<endl;
}
int number(char a1)
{
return(a1>=48&&a1<=57)?1:0;//?
}
((a=getchar())!='\n')怎么说啊?
可不可以整个程序都解释啊?谢谢啦!!

1、\n表示换行
2、return(a1>=48&&a1<=57)?1:0;
其中的? :是三元运算符,类似的fValue?x:y;如果fValue的值为真也就是>0,则返回:左边的表达式x,否则返回y
也就是说如果a1在48到57之间,则返回1,否则返回0,其中48和57可以通过ASCII编码表查询

3、针对楼主的补充问题
((a=getchar())!='\n')怎么说啊?
首先要知道getchar()的作用,它的作用就是从标准输入流中stdin中读入一个字符,并将结果赋值给变量a,由于括号的作用,在a和'\n'之间进行比较。
它等价于
char a;
a = getchar();
while(a!='\n')
{
if(number(a))
n++;

a = getchar();
}

这里的\n的n和变量int n完全没有关系,这个\n作为一个字符,与之类似的值都在ASCII码表中可以查询。这是一个英文字符集,是一个国际标准,标准是人定的,一个约定,遵守就可以了,不用详解~。

判断输入的字符是否是数字。

/n换行,就是输入回车是结束
后面个就是三目运输,前面为真返回1,假返回0
这个程序是统计输入的字母和数字的个数
getchar()读取输入的字符串,赋值给a,判断其ascii值

当输入'\n'即回车时结束,
返回输入数字字符的个数