#include<iostream> #include<fstream> #include<cstdlib> int main() { using namespace std; char in_name[50], out_name[15]; ifstream i_stream; ofstream o_stream; cout<<"我将读取输入文件中的" <<"三个数,并将它们相加" <<"后,写入输出文件。/n"; cout<<"键入输入文件名: "; cin>>in_name; //已存在 cout<<"键入输出文件名: "; cin>>out_name; //若想输入空格,则应用cin.get() cout<<"我将从输入文件 " <<in_name<<" 中读取并" <<"写入输出文件 " <<out_name<<" 中。"<<endl; i_stream.open(in_name); //读取变量不带双引号 if(i_stream.fail()) { cout<<"输入文件打开失败。"; exit(1); } o_stream.open(out_name); if(o_stream.fail()) //本例中文件名定义失败时出现 { cout<<"输出文件打开失败。"; exit(1); } int first, second, third; i_stream>>first>>second>>third; o_stream<<"输入文件 " <<in_name <<" 中的前三个数的和为: " <<(first + second + third) <<endl; i_stream.close(); o_stream.close(); cout<<"程序结束。/n"; return 0; } /*------ 本例中可能出现的错误: 1、输入文件不存在——程序容许; 2、输入文件中没有数值——程序自动获取,输出错误。 3、输出文件名长度超限——程序自动截取超出部分,易造成输出文件打开失败。 如out_name[]长度定义为15时,键入输出文件名“test_for_fileio.txt”, 则输出文件名被定义为“.txt”,造成输入文件打开失败。 4、若想输出文件名中带有空格,则需用cin.get()或cin.getline()函数。 ------*/ /*------ 使用cin.get()需注意,它会读取空格和换行符,因此必须控制输入中止。 一个echo程序为: cout<<"Enter something:/n"; char symbol; do { cin.get(symbol); cout<<symbol; } while (symbol != '/n'); ------*/