它用于設(shè)置錯(cuò)誤狀態(tài)標(biāo)志。 標(biāo)志的當(dāng)前值被覆蓋:所有位被狀態(tài)中的那些位替換; 如果狀態(tài)為goodbit(為零),則所有錯(cuò)誤標(biāo)志被清除。
在調(diào)用此函數(shù)時(shí),如果沒有流緩沖區(qū)與流相關(guān)聯(lián),則會自動設(shè)置badbit標(biāo)志(無論該段的值是否在參數(shù)狀態(tài)中傳遞)。
下面是ios::clear函數(shù)的聲明。
void clear (iostate state = goodbit);
下面的例子中演示了ios::clear函數(shù)的使用。
#include <iostream>
#include <fstream>
int main () {
char buffer [80];
std::fstream myfile;
myfile.open ("test.txt",std::fstream::in);
myfile << "test";
if (myfile.fail()) {
std::cout << "Error writing to test.txt/n";
myfile.clear();
}
myfile.getline (buffer,80);
std::cout << buffer << " successfully read from file./n";
return 0;
}