您的位置:首页 > 编程语言 > C语言/C++

c++ primer学习笔记之第一章

2014-01-08 22:37 281 查看
笔记嘛,自然是记载自己还不熟悉的地方,肯定会不全。如果有幸让您看到了,还望指出错误


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) 是不正确的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ primer