C++底层IO操作.

 #include <iostream> //istream ostream iostream
int main()
{ //注意所有的数组类型都是char.
 
 /*char* array = new char[3]; //注意只能是char类型. 
 char c;
 int i=0;
 
 std::cin.get(array, 3, 'a'); //读取3-1个字符到array中.
 //如果遇到了限定符号'a',则'a'不会被读取到array中去,而是被继续留在输入流中. 
 
 std::cin>>c; //注意这里.限定符'a'被读取到了c中,这里并没有请求再次输入. 
 std::cout<<array[0]<<" --- "<<array[1]<<std::endl;
 std::cout<<"array[2]: "<<array[2]<<std::endl; //读取了2个字符array[2]被默认初始化为'a'. 
 
 std::cout<<std::cin.gcount()<<std::endl; //这里的gcount()计算出上面的get()从输入流中读取了多少个字符.
 std::cout<<"c: "<<c<<std::endl;
 
 delete[] array;
 array = nullptr;*/
 
 /*char* array_ = new char[3];
 std::cin.getline(array_, 3, 'g');//读取了2个字符到array_中, 如果在读取的过程中遇到了限定符'g',那么会被丢弃. 
 std::cout<<array_[0]<<"----"<<array_[1]<<std::endl;
 std::cout<<array_[2]<<std::endl;
 delete[] array_;
 array_[] = nullptr;
 
 */ //这里的array_[2]被默认初始化了为'a'. 
 
 /*char* myArray = new char[3];
 std::cin.read(myArray, 3);
 std::cout<<myArray[0]<<"---"<<myArray[1]<<"---"<<myArray[2]<<std::endl;
 delete[] myArray;
 myArray = nullptr;*/
 
 /*char theArray[] = "shihuaMarrayMe.";
 std::cout.write(theArray, sizeof(theArray)/sizeof(theArray[0]));//输出的结果是:shihuaMarrayMe.a这个'a'不是无中生有的是因为theArray这个字符串中有一个'\0'符号.
 //'\0'是一个终止符,告诉编译器到了句末. 这个符号是由编译器自动添加的.
 */
 
 char* _array = new char[3];
 std::cin.ignore(3, 'a'); //假设输入的是 efgxyz,那么efg就会被忽略不被读取 xyz则被赋值给数组_array. 
 std::cin>>_array[0]>>_array[1]>>_array[2];
 
 std::cout<<_array[0]<<"---"<<_array[1]<<"---"<<_array[2]<<std::endl;
  
 
 return 0;
}

你可能感兴趣的:(C++底层IO操作.)