人也清瘦 2023-07-31 21:49 采纳率: 66.7%
浏览 43
已结题

C++生成可执行文件exe

我想把一个读入数据并处理,然后存储数据的代码变成可执行文件.exe的形式。要求是在.exe执行时,输入需要读取和存入的文件位置,然后执行,平台为VS2010,c++。代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<iostream>
#include<math.h>
#include<stdlib.h>
#include<fstream>
#include<sstream>
#include <complex>
#include <string.h>
#include <iomanip>
using namespace std;
typedef struct record
{
    int serial_number;
    char code_name[128];
    char name[128];
    int number;
    char material[128];
    float single_weight;
    float total_weight;
    char material_code[128];
    char remark[128];
}record;
 
#define MAX_LINE 1024
static record records_[MAX_LINE];
 
int main()
{
    for(int j=0;j<MAX_LINE;j++)
    {
    char line[1024];
    int ret,i,count;

    string str1;
    str1="D:\\zhao\\0725\\处理前\\";
    ostringstream out;
    //out.setf(ios::showpoint);
    out<<str1<<j<<".txt";
    str1 = out.str();
    out.str("");
    const char* A = str1.data();
    FILE* f = fopen(A, "rb"); 
        if(!f)
            continue;
        else
        {
            cout<<"           "<<'\n';
            cout<<"读取"<<str1<<'\n';
        }
 
        for (i = 0; i < MAX_LINE; i++)
        {
            if(!fgets(line, 1024, f))
            break;
            ret = sscanf(line, "%d\t%[^\t]\t%[^\t]\t%d\t%[^\t]\t%f\t%f\t%[^\t]\t%s", &records_[i].serial_number, 
            records_[i].code_name, records_[i].name, &records_[i].number, records_[i].material,
            &records_[i].single_weight, &records_[i].total_weight, records_[i].material_code, records_[i].remark);
            //if(ret == 8)records_[i].remark[0] = 0;
            //else if(ret != 9)break;    
            if(records_[i].serial_number == 0)
            break;    
         }
    fclose(f);
    count = i;
    printf(" line count %d\n", count);    
    /*for (i = 0; i < count; i++)
    {
        cout<<"i="<<i<<'\t'<<records_[i].serial_number<<'\t'<<records_[i].remark<<'\n';
    } */
    string str2;
    str2="D:\\zhao\\0725\\处理后\\";
    ostringstream out1;
    //out.setf(ios::showpoint);
    out1<<str2<<"明细表"<<j<<".csv";
    str2 = out1.str();
    out1.str("");
    ofstream of1(str2);
    //of.setf(ios::fixed);
    if(!of1)
    {
        cout<<"不能存储文件"<<" "<<str2<<'\n';
        cin.get();
    }
    if(!f)
    {
        continue;
    }
    else
    {
        cout<<"           "<<'\n';
        cout<<"存储  "<<str2<<'\n';
        of1<<"序号"<<","<<"物料码"<<","<<"名称"<<","<<"代号"<<","<<"材料"<<","<<"数量"<<","<<"         "<<","<<"备注"<<'\n';
        for(i>0;i--;)//nnp:particle name//
        {

              of1<<records_[i].serial_number<<","<<records_[i].material_code<<","<<records_[i].name<<","<<records_[i].code_name
              <<","<<records_[i].material<<","<<records_[i].number<<","<<"         "<<","<<records_[i].remark<<'\n';
        }
    }

  }
        cout<<"Complete the calcula"<<'\n';
        system("pause");
        return 0;
}

也就是说在.exe可执行文件中首先输入37行代码“str1”的内容,即:

img


然后输入第73行代码“str2”的内容,即:

img


用于测试代码的文件如下链接,提取码1234。在我自己电脑上是成功编译的,请注意VS2010 C++。

https://pan.baidu.com/s/1Kx8JsQvgi-Sy8yiPlHnbLg

  • 写回答

15条回答 默认 最新

  • threenewbee 2023-07-31 21:57
    关注
    获得1.05元问题酬金

    str1="D:\zhao\0725\处理前\";
    ->
    cin >> str1;

    str2="D:\zhao\0725\处理后\";
    ->
    cin >> str2;

    评论

报告相同问题?

问题事件

  • 系统已结题 8月8日
  • 修改了问题 7月31日
  • 修改了问题 7月31日
  • 创建了问题 7月31日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上