1.
int s;
while(cin>>s&&s!=sought)
//等价于
while(scanf("%d",&s)!=EOF)
2.悬垂else问题:即if比else多。C++中默认else与最近一个未匹配的if结合。
对于悬垂else问题,有些可以在每个if语句之后都是用花括号,避免混乱和错误。###这个想法,很不赖啊###
3.在ASCII码表中,数值 8、9、10 和 13 可以分别转换为退格符、制表符、换行符和回车符。或者直接为:退格符为"\b",制表符为“\t”,回车符为"\r",换行符为“\n”
4.记录读入文本中ff,fi,fl出现的次数
int main()
{
char currch,prech = '\0';//分别记录当前字符和之前字符
int ffCnt = 0, fiCnt = 0,flCnt = 0;
while(cin>>currch)
{
if(prech=='f')
{
switch(currch)
{
case 'f': ++ffCnt;break;
case 'i': ++fiCnt;break;
case 'l': ++flCnt;break;
}
}
prech=currch;
}
cout<<"ffCnt is"<<ffCnt<<endl
<<"fiCnt is "<<fiCnt<<endl
<<"flCnt is "<<flCnt<<endl;
}
还是很经典的,分成前后两个变量记录两个字符,先判断一个,然后再用switch语句判断下一个。学习下