获取错误码

 CString FormartLastError()
{
    //if (Error==0)
    //    Error=GetLastError();
    LPVOID lpMsgBuf;
    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER |
        FORMAT_MESSAGE_FROM_SYSTEM |
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetLastError(),
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
        (TCHAR *) &lpMsgBuf,
        0,
        NULL
        );
    TCHAR *p=(TCHAR*)lpMsgBuf;
    CString str=p;
   
    LocalFree( lpMsgBuf );
    return str;
}
在使用 fstream 进行文件操作时,如果出现错误,可以使用 fstream 对象的 failbit、badbit、eofbit 和 goodbit 成员函数来获取错误码,具体如下: 1. failbit 表示读写操作失败,通常由于文件不存在或者无法访问等原因造成。可以使用 fstream 对象的 fail() 成员函数来检查该错误码是否被设置。 2. badbit 表示文件流出现了不可恢复的错误,通常由于硬件故障或者文件不是一个合法的文件等原因造成。可以使用 fstream 对象的 bad() 成员函数来检查该错误码是否被设置。 3. eofbit 表示已经到达了文件的末尾。可以使用 fstream 对象的 eof() 成员函数来检查该错误码是否被设置。 4. goodbit 表示文件操作正常,没有出现任何错误。 可以使用 fstream 对象的 rdstate() 成员函数来获取所有设置的错误码。如果需要清除错误码,可以使用 fstream 对象的 clear() 成员函数。例如: ```c++ #include <iostream> #include <fstream> using namespace std; int main() { fstream file("test.txt", ios::in | ios::out); // 文件不存在,设置 failbit 错误码 if (!file.is_open()) { cout << "打开文件失败!" << endl; cout << "错误码: " << file.rdstate() << endl; file.clear(); // 清除错误码 } file << "Hello, world!"; // 写入文件失败,设置 badbit 错误码 if (file.fail()) { cout << "写入文件失败!" << endl; cout << "错误码: " << file.rdstate() << endl; file.clear(); // 清除错误码 } // 读取文件失败,设置 eofbit 错误码 char c; while (file >> c) { cout << c; } if (file.eof()) { cout << endl << "读取文件结束!" << endl; cout << "错误码: " << file.rdstate() << endl; file.clear(); // 清除错误码 } file.close(); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值