一条C语句

来源:百度知道 编辑:UC知道 时间:2024/06/28 05:27:25
for(sum=n=0; (s=(int)cin.get())!=EOF; n++) sum+=s;

是什么意思?
主要是中间的

(s=(int)cin.get())!=EOF;

这句是什么意思?

cin.get()//读入一行。
s=(int)cin.get()//读入的这一行转换成INT类型,并把它的值赋给s

(s=(int)cin.get())!=EOF;
文件的末尾有一个EOF的符号
这里就是判断S的值是否为EOF。

我认为cin.get()是读入一个字符(而且应该是从某一文件中读取的),而s=(int)cin.get()则是将该字符强制转化为int类型,并赋值给s. EOF一般定义为文件结束符,其值一般是-1.全称可能是end of file.
上面那个for循环可能是计算一个文件(或是字符串)中所有字符的ASC码值的总和