CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

文件操作?

楼主vcexplorer(常青树)2002-05-23 21:06:42 在 C/C++ / C语言 提问

ifstream   infile;   //定义打开文件的标识  
          infile.open(pppp);//参数为要打开的文件名  
  pppp为丛键盘输入的一字符串;能否向上面那样把PPPP作为infile.open()的参数;;错误提示infine.open()中的参数应为const   string   *,现在要求infile.open()的参数既文件路径从键盘输入,而丛键盘输入的字符串有不是CONST   STRING*   类型,该如何解决? 问题点数:60、回复次数:17Top

1 楼wangjue28(我爱我家)回复于 2002-05-23 21:37:40 得分 0

把键盘输入转化为string不就行了?Top

2 楼kof99th(小虫)回复于 2002-05-25 14:59:33 得分 15

char*   p=new   char[256];  
  cin>>p;  
  infile.open(p);  
  delete   p;  
  不会有错吧?Top

3 楼vcexplorer(常青树)回复于 2002-05-28 21:51:04 得分 0

若想使ofstream   out("d:\\zq\\zq1.txt");中的“d:\\zq\\zq1.txt”为从键盘上输入的文件路径,该如何办,我向这样:char   *pathsel=new   char[50];cin>>pathsel;ofstream   out(pathsel);不行,该如何解决?Top

4 楼zhdleo(叮东)回复于 2002-05-28 23:56:28 得分 20

不会呀?  
   
  看:  
  #include   <iostream>  
  #include   <fstream>  
  using   namespace   std;  
   
  main()  
  {char   *pathsel=new   char[50];  
    cin>>   pathsel;  
    cout   <<   pathsel;  
    ofstream   out(pathsel);  
    if   (!out)  
          cout   <<"Error";  
    else   cout   <<   "Right";  
  }  
   
  创建文件成功,输出Right!      
  照着你的“d:\\zq\\zq1.txt”可以成功创建!!!Top

5 楼zzxop(%&^%$(*&^)回复于 2002-05-29 01:02:27 得分 0

cout<<pathsel;有什么作用?Top

6 楼zhdleo(叮东)回复于 2002-05-29 01:03:37 得分 0

没什么,可以不要!  
   
  测试!  
  Top

7 楼Autom(见色生情)回复于 2002-05-29 10:26:32 得分 15

#include   <fstream.h>  
  void   main()  
  {  
  char   *   path=new   char[50];  
  cin>>path;  
  cout<<path;  
  ofstream   out(path);  
  if(!out)   cout<<"error!"<<endl;  
  else   cout<<"well"<<endl;  
  }  
  输入:d:\\zq.txt:  
  输出:d:\\zq.txt:error!  
  输入:   d:\zq.txt:  
  输出:d:\zq.txt:   well!  
  如果是从键盘上输入,只需一个'\',而在程序中打开,需要两个'\',是因为转义字符的问题。Top

8 楼zhdleo(叮东)回复于 2002-05-29 10:41:49 得分 0

我必须修正我的错误!  
  按照我试的结果  
  d:\zq.txt与d:\\zq.txt  
  都可以在D:\下成功创建zq.txt文件!!!!!!!!!!!  
  同意楼上的部分意见!  
  即在文件中需要两个'\'  
  创建文件,我觉得是无所谓!系统会自动识别的!Top

9 楼vcexplorer(常青树)回复于 2002-05-29 22:49:14 得分 0

谢谢大家的热情讨论,现在上面问题已经解决了,可又我又遇到一个新问题:从打开的文件in里取字符:in>>ch;然后输出到新建的文件里:out<<ch;每搁100(视情况而定)个字符换行,由于in文件大都为汉字,在取字符且需要换行时时就将汉字取为两个字符,分为两行输出,导致出现不希望的字符:下一行的字符全部出错;我想应该有办法解决,请各位再帮小弟一把!Top

10 楼zhdleo(叮东)回复于 2002-05-29 23:07:26 得分 10

文件是英文中文混合吗??  
  我觉得这样:  
  统计一行中的单一符个数!!最后一定要保证这个数为一个双数,  
  如果单数,那么100就要-1     99换行!!  
   
  这样应该不会了吧???  
  我的愚见!!Top

11 楼vcexplorer(常青树)回复于 2002-05-29 23:21:21 得分 0

TO:zhdleo(叮东)  
  你的想法我也考虑过,只是若能判断出ch是双字符的一部分,直接换行就可以,问题是如何判断出双字符?好象有函数能够解决。Top

12 楼vcexplorer(常青树)回复于 2002-05-29 23:28:09 得分 0

我的想法是:如果能判断出字符是双字符,直接换行就可以了,可问题是如何能判断?应该有函数能解决这个问题的;Top

13 楼zhdleo(叮东)回复于 2002-05-29 23:32:02 得分 0

这个我不知道!我帮不了你了,哎。。。。Top

14 楼pi1ot(-=\Pilot/=-)回复于 2002-05-29 23:47:28 得分 0

汉字的直是有规律的,不过我忘...  
   
  只是恍惚记得换成有符号整数是第一个字节小于0....Top

15 楼zhdleo(叮东)回复于 2002-05-30 23:27:11 得分 0

这个问题谁能帮帮忙!我也想知道!Top

16 楼vcexplorer(常青树)回复于 2002-06-01 09:40:29 得分 0

根据   pi1ot(pilot)所说:只是恍惚记得换成有符号整数是第一个字节小于0....,我用if(ch<0)语句,加上其他控制标记,解决了上述问题,文本文件能够按照要求排列。单总感觉不是太好。  
  Top

17 楼vcexplorer(常青树)回复于 2002-06-01 10:10:47 得分 0

欢迎大家继续讨论!Top

18 楼vcexplorer(常青树)回复于 2002-06-01 10:53:26 得分 0

还有,如何删除一个用上述方式建立的文本文件?Top

相关问题

  • 文件操作!
  • 文件操作
  • 文件操作
  • 文件操作
  • 文件操作
  • 文件操作
  • 文件操作
  • 文件操作!
  • 文件操作
  • 文件操作

关键词

  • 文件
  • 键盘
  • pathsel
  • zq
  • pppp
  • infile
  • 参数
  • cin
  • 键盘输入
  • open

得分解答快速导航

  • 帖主:vcexplorer
  • kof99th
  • zhdleo
  • Autom
  • zhdleo

相关链接

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

广告也精彩

反馈

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