笔记嘛,自然是记载自己还不熟悉的地方,肯定会不全。如果有幸让您看到了,还望指出错误
1、main的返回值用来指示状态,返回0表示成功,非0由系统定义。可在MMC中用echo %ERRORLEVEL% 查看刚刚返回的错误
2、流表示随着时间的推移,字符时顺序生成或消耗的。<<输出运算符将给定的值写入给定的ostream对象中,返回ostream对象,如果调用失败,(如int型的val给他赋值了个小数0.7),ostream的对象状态变成无效,它会使条件变成假。 如:while(std::cin>>val);输入了0.7。
3、注释不能嵌套,不然会有奇怪的东西,如/*s /*users*/ p*/编译器会报错。
int main()
{
int a,b;
std::cin>>a;
std::cout<<"You have typed"<<a<<endl;
std::cin>>b;
std::cout<<"You have typed"<<b<<endl;
}
4、输入输出流是将输入暂存在一个buffer中,一个cin,cout都会从中顺序取出一个数据。若输入多了,下次输入则自动读出。如程序
如果输入3 4 5 ,则不会出现第二次输入的等待符,直接输出两行字符串。
要将流清楚,则可以用fflush(stdin/stdou),清除文件缓冲区。
int main()
{
int a,b;
std::cin>>a;
std::cout<<"You have typed"<<a<<endl;
fflush(stdin);
std::cin>>b;
std::cout<<"You have typed"<<b<<endl;
}
扩展:
fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃[非标准]。
fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西打印到标准输出设备上。
printf("。。。。。。。。。。。");后面加fflush(stdout);可提高打印效率。
int fflush(FILE *stream);
如果stream指向输出流或者更新流(update stream),并且这个更新流最近执行的操作不是输入,那么fflush函数将把任何未被写入的数据写入stream指向的文件(如标准输出文件stdout)。否则,fflush函数的行为是不确定的。fflush(NULL)清空所有输出流和上面提到的更新流。如果发生写错误,fflush函数会给那些流打上错误标记,并且返回EOF,否则返回0。
由此可知,如果 stream 指向输入流(如 stdin),那么 fflush 函数的行为是不确定的。故而使用 fflush(stdin) 是不正确的。