VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 455|回复: 2

ifstream 读文件 然后写出文件 写出失败的问题

[复制链接]
69_avatar_middle
最佳答案
1 
在线会员 发表于 2019-4-30 01:09:39 | 显示全部楼层 |阅读模式
3驿站币
  1. ifstream fin("../11.exe", ios::in);

  2.         string str;
  3.         fin >> str;

  4.         ofstream fout("../1.exe");

  5.         fout << str << endl;
  6.         fout << "haha.exe";
复制代码


我的想法是先读11.exe的内容 然后再写出11.exe的内容  后面加上haha.exe   但是写出的程序不能运行  11.exe程序是可以运行的

最佳答案

查看完整内容

脑洞大开,还有这么写东西的就想执行地。.exe文件是有特定格式地。不是简单相加。不过流文件操作例程应该是这样。 #include "stdafx.h" #include #include #include using namespace std; int main() { wstring filename = L"demo.txt"; //检查文件是否存在 struct _stat64 fileStat; int fileExists = _wstat64(filename.c_str(), &fileStat); if (fileExists == -1) { //建立文件 ofstream ofile(file ...




上一篇:fstream 如何指定读多少字节?
下一篇:QFile如何写出文件的图标
75_avatar_middle
最佳答案
0 
在线会员 发表于 2019-4-30 01:09:40 | 显示全部楼层
本帖最后由 xx_player 于 2019-4-30 10:47 编辑

脑洞大开,还有这么写东西的就想执行地。.exe文件是有特定格式地。不是简单相加。不过流文件操作例程应该是这样。
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
        wstring filename = L"demo.txt";
        //检查文件是否存在
        struct _stat64 fileStat;
        int fileExists = _wstat64(filename.c_str(), &fileStat);
        if (fileExists == -1) {
                //建立文件
                ofstream ofile(filename, ios::out | ios::app);
                ofile << "111111111111111111111" << endl;
                ofile << "222222222222222222222" << endl;
                ofile << "333333333333333333333" << endl;
                ofile << "444444444444444444444" << endl;
                ofile << "555555555555555555555" << endl;
                ofile.close();
                return -1;
        }
        //打开文件
        ifstream ifile(filename, ios::in|ios::binary);
        if (!ifile) {
                cout << filename.c_str() << "cannot input!" << endl;
                return -1;
        }
        //按行读
        char linebuf[2][128];
        ifile.getline(linebuf[0], 128);
        ifile.getline(linebuf[1], 128);
        //指定位置读
        int pos = 46;
        ifile.seekg(pos, ios::beg);
        char buf[128] = { 0 };
        ifile.read(buf, 23);
        //接着读
        ifile.read(&buf[23], 23);
        //结果
        cout << linebuf[0] << endl;
        cout << linebuf[1] << endl;
        cout << buf << endl;
        //最后一次读的字节
        cout << "read bytes=" << ifile.gcount() << endl;
      
    //关闭文件
    ifile.close();

    return 0;
}

ifstream 读文件 然后写出文件  写出失败的问题

69_avatar_middle
最佳答案
1 
ico_lz  楼主| 发表于 2019-4-30 05:37:07 | 显示全部楼层
虽然不知道正确方法,但是解决了,通过一个字符一个字符获取,然后存起来解决的
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-21 17:44

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表