打开文件后 一定要先检查是否成功打开 再做下面的事情!
#include <iostream> using namespace std; #include <string> #include <fstream> // ifstream 是cin的子类。所以操作cin的方法都能操作ifstream int main() { ifstream fin("04io.cpp"); //只接收c风格字符串路径 sting.c_str() // 等同于 ifstring fin; fin.open(" "); if(!fin) //打开失败 { cout << "打开文件失败" << endl; return 1; } ofstream fout("04io.copy"); //会将原有内容清空 if(!fout) { cout << "打开文件失败" << endl; return 1; } char ch; //while((ch=fin.get()) != EOF) while(fin.get(ch)) { fout << ch; cout << ch; } // while(fin >> ch) cout << ch; // 处理非空白字符用 /* 这种写法会多出最后一个字符 while(fin) { fin.get(ch); fout << ch; //读取出错后继续执行 } */ fin.clear(); //如果后面还需要使用来输入,需要clear。因为之前读到文件末尾就置为错误状态了。 但后面是关闭流,也就可以不要。 fin.close(); //关闭文件 fout.close(); // fin.get(); //原样获取 // fin >> ch; //不要空白 return 0; }