CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  工具平台和程序库

如何简便的将一个文件中的内容拷到一个字符数组中?

楼主trailblazer(开路先锋)2003-03-01 22:26:19 在 C/C++ / 工具平台和程序库 提问

如果将文件输入到输出流用rdbuf()就可,但是如何输入到数组中呢??  
  偶的傻方法:(在integer类中,ch是integer类的private成员,字符数组,初始时用memset全置为0了)  
  friend   istream&   operator>>   (istream&   is,integer&   right)  
  {  
  //return   is>>right.ch;  
  const   sz=100;//不好!  
  char*   pch=new   char[sz];  
                  while   (is.getline(pch,sz))  
  {  
  if   (*right.ch!=0)  
  {  
  strcat(right.ch,pch);  
  right.ch[strlen(right.ch)]='\n';  
                                    //为了保留回车用的SB方法!自己都不好意思                      
  }  
  else  
  {  
  strcpy(right.ch,pch);  
  right.ch[strlen(right.ch)]='\n';  
  }  
  }  
  return   is;  
  }  
  如果直接用is>>right.ch;一到空格就不读了!  
  请各位高手献计献策,提出简便的方法,将一个文件中的内容拷到一个字符数组中可是很常用的哟! 问题点数:0、回复次数:4Top

1 楼flyinger(风往北吹)回复于 2003-03-01 23:18:05 得分 0

#include<iostream>  
  #include<fstream>  
  #include<iterator>  
  #include<algorithm>  
  #include<vector>  
  #include<string>  
  using   namespace   std;  
  int   main()  
  {  
  /* istream_iterator<string>   is(   cin);  
  istream_iterator<string>   eof;  
   
  vector<string>   text;  
  copy(is,eof,back_inserter(text));  
   
  sort(text.begin(),text.end()   );  
   
  ostream_iterator<string>   os(cout,"   ");  
  copy(text.begin(),text.end(),os);  
  */  
  ifstream   in_file("F:\\FlySProgrammer\\VC6\\vector\\ght.txt");  
  ifstream   in_file2("F:\\FlySProgrammer\\VC6\\vector\\ght0.txt");  
  ofstream   out_file("F:\\FlySProgrammer\\VC6\\vector\\ght1.txt");  
  if(!in_file||!out_file)  
  {  
  cerr<<"!!unable   to   open   the   necessary   files   .\n";  
  return   -1;  
  }  
   
  istream_iterator<   string   >   is(in_file);  
  istream_iterator<   string   >   fly(in_file2);  
  istream_iterator<   string   >   eof;  
  istream_iterator<   string   >   f;  
   
  vector<string>   text;  
  copy(is,eof,back_inserter(text));  
  copy(fly,f,   back_inserter(text));  
   
  sort(text.begin(),text.end());  
   
  ostream_iterator<   string   >   os(out_file,"     ");  
  copy(text.begin(),text.end(),os);  
      }  
  到是可以参考!呵呵!Top

2 楼flyinger(风往北吹)回复于 2003-03-01 23:19:32 得分 0

我是把两个文件多到那个Text中啊!最后保存到了哪个ght1.txt中了!Top

3 楼trailblazer(开路先锋)回复于 2003-03-03 12:00:04 得分 0

能不能少用一些STL内容,用更基础的实现方法??Top

4 楼OstrichFly(飞翔的鸵鸟)回复于 2003-03-03 12:05:00 得分 0

windows可以直接用内存映射文件,把整个文件映射到内存中就行了,而且性能较好Top

相关问题

  • 文件保存字符串数组
  • 请赐教!!!如何接收winsock发送的二进制字符数组文件???
  • 怎样检查一个字符串数组中是否有一个字符串在指定的文件中呢?
  • 用一个字符串数组存储从两个文件中读取的字符问题
  • 字符串指针数组
  • 字符数组的问题
  • 关于字符数组
  • 这是字符数组吗?
  • 关于字符数组
  • 请教:字符串数组

关键词

  • 字符
  • 文件
  • 内容
  • vector
  • os
  • vc
  • 字符数组
  • istream
  • ght
  • flysprogrammer

得分解答快速导航

  • 帖主:trailblazer

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo