会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> C/S程序开发专区 >> C/C++编程论坛 >> 怎么把1.txt内容写到2.txt中[求助]
首页
中资源
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 171 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
 * 贴子主题:怎么把1.txt内容写到2.txt中[求助] 悬赏分50 [已结帖] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 Cindy_Luo 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:192
  专家分:0
  提问帖:1/1
  回答帖:4
  总帖数:9
  经验值:65
  注 册:2008-9-11
给Cindy_Luo发送一个短消息 把Cindy_Luo加入好友 查看Cindy_Luo的个人资料 搜索Cindy_Luo在C/C++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子楼主

发贴心情 怎么把1.txt内容写到2.txt中[求助]

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    char ch[20];
    int count =0;
    memset(ch,0,sizeof(ch));
    ifstream fin("E:\\1.txt");
    char d;
    while(!fin.eof())
    {
        d=fin.get();
        ch[++count]=d;
        cout<<d;
    }
    cout<<endl;
    fin.close();

    ofstream fout("E:\\3.txt");
    while(true)
    {
        for(int i=1;i<=count;i++)
          fout<<i;
    }
    cout<<endl;
    fout.close();
    
    return 0;
}

本人刚学语言。写的有点撇脚。想请问一下上面错在哪里?? 或者有优化 点的。

发帖:2008-12-2 15:40:00
  鲜花(1)  鸡蛋(0)
 wsw771006 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:960
  专家分:432
  提问帖:0/0
  回答帖:50
  总帖数:56
  经验值:112
  注 册:2008-10-18
给wsw771006发送一个短消息 把wsw771006加入好友 查看wsw771006的个人资料 搜索wsw771006在C/C++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子2

发贴心情 

首先定义char ch[20]来装E:\\1.txt中的内容不具有通用性,在1.txt中内容大于20个字符时会造成数组溢出。因此可以考虑用字符串。
其次while(true)
    {
        for(int i=1;i<=count;i++)
          fout<<i;
    }
没有明白LZ的意思,是不是应该为for(int i=1;i<=count;i++)  fout<<ch[i];
从C++编程思想中给LZ抄了一段作为参考吧:
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main()
{
    ifstream fin("d:\\1.txt");
    ofstream fout("d:\\2.txt");
    string s;
    while(getline(fin, s))//按行读取,但是会丢弃换行符
        fout << s << "\n";//每行加上换行符
    return 0;
}


发帖:2008-12-2 21:15:00
 debroa723 帅哥哟,离线,有人找我吗?
  
  
  等 级:论坛游民
  积 分:2261
  专家分:1275
  提问帖:0/0
  回答帖:112
  总帖数:123
  经验值:178
  注 册:2008-10-12
给debroa723发送一个短消息 把debroa723加入好友 查看debroa723的个人资料 搜索debroa723在C/C++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子3

发贴心情 

ch[++count]=d;//这是第一个错误,使得数组从第二个元素开始记录,第一个元素为0,应改为
ch[count]=d;
++count;
逻辑分开最好,易看,写在一起并不能让代码运行的更快.

 while(true)
    {
        for(int i=1;i<=count;i++)
          fout<<i;
    }
//这是第二个错误,这个循环造成死循环,正确做法.(规范的写法让思路更清楚,不要把括号省略了)


for(int i=0;i<count;++i)
{  
     fout<<ch[i];
}

发帖:2008-12-2 22:55:00
 Cindy_Luo 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:192
  专家分:0
  提问帖:1/1
  回答帖:4
  总帖数:9
  经验值:65
  注 册:2008-9-11
给Cindy_Luo发送一个短消息 把Cindy_Luo加入好友 查看Cindy_Luo的个人资料 搜索Cindy_Luo在C/C++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子4

发贴心情 

非常感谢。看明白了。
发帖:2008-12-8 11:05:00

本主题贴数4,分页:[返回帖子列表] [上一页] [1] [下一页]

此主题已经结帖:

wsw771006-30,debroa723-20

 *快速回复:怎么把1.txt内容写到2.txt中[求助]  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]

    管理选项锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告