C++ 文件输入输出问题

//此函数 唯一形参跟返回值都是istream类型。该函数应该一直读取直到文件结束为止,还应该将读取内容输出到标准输出,最后,重新设置流使其有效,并返回流。
istream& get(istream& in)
{

   int val;
   while(in>>val,!in.eof())
   {
         if(in.bad())
		 throw std::runtime_error("IO stream corrupted");
        if(in.fail())
		{
		    cerr<<"bad data!!!try again"<

//ifstream继承istream   其对象可以作为上面函数的参数   

//注意:IO标准库使用C风格字符串  调用open或者使用文件名做初始化式,需要传递的实参应为C风格字符串,而不是标准库string对象。

//下面的代码  路径必须采用双斜杠    

//斜杠\是保留符号,所以要正确编译的话需要两个斜杠\\
//在代码中显示写出双斜杠 不写出出错  

法1:

ifstream inFile;
  inFile.open("E:\\Codes\\stream.txt");    // 可使用 open  或者 ifstream inFile("E:\\Codes\\stream.txt");

  if(!inFile)
  {
	  cerr<<"error:can not open the file"<



法2:在控制台输入路径  单斜杠即可   
//尝试输出fileName.c_str()  还是 E:\Codes\stream.txt      为什么fileName.c_str()可以作为形参 但是   E:\Codes\stream.txt  不行???

 string fileName;

  cout<<"enter filename:"<>fileName;

  ifstream inFile(fileName.c_str());

  if(!inFile)
  {
	  cerr<<"error:can not open the file"<
 

data:


你可能感兴趣的:(C++)