设为首页 加入收藏

TOP

C++文件操作(四)
2013-04-10 11:39:05 来源: 作者: 【 】 浏览:746
Tags:文件 操作
 
  完整的程序示例:
  [cpp]
  #include <fstream>
  #include <iostream>
  using namespace std;
  int main()
  {
  ifstream icin;
  icin.open("test.txt");
  char temp[100];//定义一个字符数组temp
  icin>>temp;//将文件中的数据读到字符数组temp中
  cout<<temp<<endl;//将temp中存放的内容输出到屏幕上
  return 0;
  }
  运行之前,我们需要在该文件夹下建立test.txt文件,其中的内容就是上面的"Hello,C++(www.cppentry.com)!".那么输出如下:
 
      可以看到,程序在命令行中显示出来了test.txt文本文件中的内容。
 
如何读取空格和空格后面的字符  
      我们在写文件的时候,空格是不可避免的。但是由于C++(www.cppentry.com)的插入操作符有一个毛病,它只要一遇到空字符便会停止输出。这里的空字符就是空格,或者是’\0’。那么这样一来,如果我们在文件中有空格字符,那么空格后面的字符就无法被输出到屏幕上了。比如说,我们建立的test.txt文件中的内容为:Hello  C++(www.cppentry.com)!即把Hello后面的逗号改成空格,那么重新运行该程序,输出如下:
 
 
  那么有没有什么解决方法呢,当然是有的哈.用getline()函数嘛.下面粘一段MSDN上面关于getline()函数原型和参数的介绍哈:
  首先是函数原型:
  [cpp]
  template<class CharType, class Traits, class Allocator>
  basic_istream<CharType, Traits>& getline(
  basic_istream<CharType, Traits>& _Istr,
  basic_string<CharType, Traits, Allocator>& _Str
  );
  template<class CharType, class Traits, class Allocator>
  basic_istream<CharType, Traits>& getline(
  basic_istream<CharType, Traits>& _Istr,
  basic_string<CharType, Traits, Allocator>& _Str,
  const CharType _Delim
  );
  函数中的参数已经用黑体表示出来了哈,下面是参数说明:
  [cpp]
  _Istr
  The input stream from which a string is to be extracted.
  指明输出的缓冲区是谁
  _Str
  The string into which are read the characters from the input stream.
  读取到流中的字符数据
  _Delim
  The line delimiter.
  结束符号
  (默认的结束符号是'\n',而这里采用自定义的结束符号替换掉默认的结束符号.意思就是输出遇到_Delim才会停止输出)
  好了,有了这个函数,我们就可以把上面的程序中的第10行改成:
  [cpp]
  icin.getline(temp,100);
  这就表示把字符数组temp中的内容全部读取到屏幕上,如下图所示
 
      OK~~这样一来,我们就不怕文件中有空格了。
 
      另外,如果我们想要在命令行中写一段话,而且这段换中包含了空格和回车,那么我们就应该利用上面getline()函数的第三个参数,因为一段话中有可能会有回车的出现,我们就必须利用getline()的第三个函数将默认的结束符号’\n’换成空字符‘\0’。这是由于空字符的ASCII码为0,我们不可能在文件中输入空字符,因此这个时候,getline()函数会一直读取到文件的末尾才会结束。而如何停止用户输入呢?方法其实很简单,在我们输入完一段话之后,肯定会按下回车。之后我们就应该向该函数发出EOF标志,即文件结束符标志(End  Of File)。在命令行里面发送文件结束符的方法是“Ctrl+Z”,之后再次按下回车键就能停止输入了。 
       p.s. 空格不是空字符,它的ASCII码为32。

          

首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C/C++的3种注释方式 下一篇通过变换A B得出xzy 的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: