c++碰到的一些细节知识

1 memset()函数 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,           块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include<iostream> using namespace std; int main(void) {  char buffer[]="hello world";  memset(buffer,'#',strlen(buffer));  cout<<buffer<<endl;  //cout<<strlen(buffer)<<" "<<sizeof(buffer)<<endl;  return 0; }

输出结果: Buffer before memset: Hello world

Buffer after memset: ***********

其中这里用了strlen与sizeof函数,前者的结果是11,后者的结果是12 而当char *buffer="hello world"; strlen(buffer)=11  sizeof(buffer)=4; 此处buffer是一个指针,在32为系统里指针的大小都是4字节

2 这是昨天在看代码时碰到的一个小问题,自己对c++里面的流还是不怎么了解 fstream 的good函数   good()函数用来判断当前流状态是否健康,当遇到EOF、输入类型不匹配的时候放回false。

示例代码: #include <iostream> using namespace std; void main() { int n; while(cin.good()) { cin>>n; cout<<"你输入了一个整数:"<<n<<endl; } cout<<"输入值非整数,程序退出"<<endl; }

运行之,只要输入数字,程序会显示出你输入的数字,并且循环继续,只要不是数字就跳出循环

 

 

你可能感兴趣的:(C++,c,buffer,化工,iostream)