|
- #include<fstream>
- using namespace std;
- int main()
- {
- int var = 20000;
- ofstream fs;
- fs.open("d:\\123.txt");
- if (!fs.good())
- {
- cout << "文件fs打开失败" << endl;
- return 0;
- }
- fs << 1112 << endl;//写入1112
- fs << 202<< endl;//写入202
- fs.write((const char*)&var, sizeof(int));//写入100
- fs.close();
- ifstream fs2;
- fs2.open("d:\\123.txt");
- if (!fs.good())
- {
- cout << "文件fs2打开失败" << endl;
- return 0;
- }
- var = 0;
- //读1112
- fs2 >> var;
- bool f_is_fail = fs2.fail();
- bool f_is_bad = fs2.bad();
- bool f_is_end = fs2.eof();
- bool f_is_good = fs2.good();
-
- cout << var << ",f_is_fail =" << f_is_fail << ",f_is_bad =" << f_is_bad << ",f_is_end =" << f_is_end << ",f_is_good =" << f_is_good << endl;
- //读202.5
- fs2 >> var;
- f_is_fail = fs2.fail();
- f_is_bad = fs2.bad();
- f_is_end = fs2.eof();
- f_is_good = fs2.good();
- cout << var << ",f_is_fail =" << f_is_fail << ",f_is_bad =" << f_is_bad << ",f_is_end =" << f_is_end << ",f_is_good =" << f_is_good << endl;
- ////读20000
- fs2.read((char*)&var, sizeof(var));
- f_is_fail = fs2.fail();
- f_is_bad = fs2.bad();
- f_is_end = fs2.eof();
- f_is_good = fs2.good();
- cout << var << ",f_is_fail =" << f_is_fail << ",f_is_bad =" << f_is_bad << ",f_is_end =" << f_is_end << ",f_is_good =" << f_is_good << endl;
- fs2.close();
- return 0;
- }
复制代码
在执行这段程序的时候前2个数读取都正常,第三个数读取出现问题,正常应该是20000,但是读取出来是25610如图1;但是程序如果是不读取前2个数字,直接读取20000是正常的如图2
- #include<fstream>
- using namespace std;
- int main()
- {
- int var = 20000;
- ofstream fs;
- fs.open("d:\\123.txt");
- if (!fs.good())
- {
- cout << "文件fs打开失败" << endl;
- return 0;
- }
- fs.write((const char*)&var, sizeof(int));//写入100
- fs.close();
- ifstream fs2;
- fs2.open("d:\\123.txt");
- if (!fs.good())
- {
- cout << "文件fs2打开失败" << endl;
- return 0;
- }
- var = 0;
- ////读20000
- fs2.read((char*)&var, sizeof(var));
- bool f_is_fail = fs2.fail();
- bool f_is_bad = fs2.bad();
- bool f_is_end = fs2.eof();
- bool f_is_good = fs2.good();
- cout << var << ",f_is_fail =" << f_is_fail << ",f_is_bad =" << f_is_bad << ",f_is_end =" << f_is_end << ",f_is_good =" << f_is_good << endl;
- fs2.close();
- return 0;
- }
复制代码
|
-
图1
-
图2
上一篇: 为什么我设置了开机启动后,没有开机自启,而是打开了C:\Documents呢?下一篇: 为什么指针在32位操作系统占4个字节,64位是8个字节
|