⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changbankname.txt

📁 用输入输出流方式追加文件信息
💻 TXT
字号:
#include <fstream>
#include <iomanip>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include "string.h"
#include "memory.h"
#include "windows.h"
using namespace std;

typedef struct
{
    int date;
    int open;
    int high;
    int low;
    int close;
    float amount;
    int vol;
    int reservation;
} StockData; 

StockData stockData;
int read_data(FILE *fin,ofstream& fout);

void main()
{
    //定义数据 
	FILE *fin,*fp;
	ofstream fout;
    char FileName[16];
	char bankname[9];
	char number[7];
	char search[111366];
	memset(bankname,0,9);
    memset(search,0,9);
	
    //将公司名称文件的数据读入search数组
	if((fp = fopen("深沪A股0316.TXT","rb")) == NULL)
	{
		printf("Error: Can^t open 深沪A股0316.TXT ");
		exit(1); 
	}
	fseek(fp,91600,SEEK_SET);
	fread(search,1,111366,fp);
	fclose(fp);
	//开始整理day文件中数据
	for (int n=0;n<111366;n++)
	{
		if(search[n]==0x0D&&search[n+1]==0x0A&&search[n+2]==0x36)
		{
			for(int j=0;j<6;j++)
				number[j]=search[n+2+j];
			for(int m=0;m<8;m++)
				bankname[m]=search[n+9+m];
			int index=atoi(number);
			
			//根据搜索到的公司序号名,搜索当前目录下是否存在相应的day文件,
			//存在即处理,否则放弃
			sprintf(FileName,"SH%d.day",index);
			if((fin = fopen(FileName,"rb")) == NULL)
			{
				printf("Error: Can^t open File ");
				break;
			}
			else//如果day文件存在,则新建相应的xls文件,并1.先将公司名写入
				//文件名有两种方案:用原来的day文件名,或用相应的公司名作文件名
			{
			//	sprintf(FileName,"SH%d.xls",index);//这两句用来控制两种方案生成
				sprintf(FileName,"%s.xls",bankname);
				fp=fopen(FileName,"w");//也可以用fout来代替fp操作
				fwrite(bankname,sizeof(char),9,fp);
				char endofline='\n';
				fwrite(&endofline,1,1,fp);
				fclose(fp);	
				//2.后再将公司的相关数据追加入文件中去
				fout.open(FileName,ios::out|ios::app );// 输出格式txt  可改为xls
				fout<<"%日期\t开盘价(元)\t最高价(元)\t最低价(元)\t收盘价(元)\t成交额(万元)\t成交量(股)\t昨日收盘价(元)"<<"\n";
				read_data(fin,fout);// 读
				fclose(fin);
				fout.close();	
			}
		}
	}
	//等待用户任意键退出
	if(getch()==0) getch();
	exit(0);
}
//读取day文件数据至相应的xls文件中去
int read_data(FILE *fin,ofstream& fout)
{
    float fn;
    while (! feof(fin)) {
		fout.setf(ios::fixed);
		fout.setf(ios::showpoint);
		fout.precision(2);
        fread(&stockData,sizeof(StockData),1,fin); 
		fout<<setw(8)<<stockData.date<<"\t";//日期
        fn=float(stockData.open)/100;     
		fout<<setw(8)<<fn<<"\t";//开盘价
        fn=float(stockData.high)/100;       
		fout<<setw(8)<<fn<<"\t";//最高价
        fn=float(stockData.low)/100;      
		fout<<setw(8)<<fn<<"\t";//最低价
        fn=float(stockData.close)/100;        
		fout<<setw(8)<<fn<<"\t";//收盘价 
		fn=float(stockData.amount)/10000;
		fout<<setw(11)<<fn<<"\t";//成交额
        fout<<setw(10)<<stockData.vol<<"\t";//成交量
		fn=float(stockData.reservation)/100;      
		fout<<setw(10)<<fn<<"\t";//昨日收盘价
		fout<<"\n";
    }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -