c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变
c语言实现二进制(01)转化成txt格式文本:
下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误。
本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示,并存入输出文件a2.txt中。然后再将二进制文件还原并存入b2.txt文件。
参考链接:https://www.jb51.net/article/158695.htm
1 #include <cstdio>
2 #include <stdio.h>
3 #include <string.h>
4 #define NSIZE 8
5
6 void print_2(int val2);
7 /***********文本文件转二进制**********/
8 void Text2Bin(const char* sIn,const char* sOut){
9 char a[255];
10 int count = 0;
11 int ch;
12 for(int j=0; j<255;j++)a[j]='\0';
13 FILE* fin=fopen(sIn,"r");
14 FILE* fout=fopen(sOut,"w");
15 for(int i=0 ; i<=255 ; i++)fscanf(fin,"%c",&a[i]);
16 for(int k=0 ; k<=254&&a[k] !='\0'; k++)
17 {
18 ch = a[k];
19 for(int a=7;a>=0;a--) fprintf(fout,"%d",ch>>a&1);
20 //fprintf(fout,"\n");
21 }
22 fclose(fin);
23 fclose(fout);
24 }
25 /***********二进制文件转文本文件**********/
26 void Bin2Text(const char* sIn,const char* sOut){
27 FILE* fin=fopen(sIn,"r");
28 FILE* fout=fopen(sOut,"w");
29 char str[255*8];
30 for(int r=0; r<255 ;r++) str[r]='\0';
31 int i = 0, j = 0, iTemp = 0, flag = 0;
32 int ibina[NSIZE];
33 char cRead[NSIZE];
34 char cChar;
35 for(int a=0 ; a<=255 ; a++)fscanf(fin,"%c",&str[a]);
36 //for(int f=0 ; f<=255 ; f++)printf("%c",str[f]);
37 while(flag <= 255){
38 //printf("%d",flag);
39 for(int b=flag ; b>=flag && b<flag+NSIZE ; b++)
40 {
41 //printf("%d",b%8);
42 cRead[b%8] = str[b];
43 //printf("%c",cRead[b%8]);
44 }
45 for(i = 0; i < NSIZE; i++)
46 {
47 ibina[i] = (cRead[i]-'0');
48 }
49 iTemp = 1;
50 cChar = 0;
51 for(j = 7; j >=0 ; j--)
52 {
53 //printf("%c",ibina[j]);
54 //printf("%d\n",cChar);
55 cChar+=ibina[j]*iTemp;
56 iTemp *= 2;
57 }
58 printf("%c",cChar);
59 fprintf(fout,"%c",cChar);
60 flag=flag+8;
61 }
62 fclose(fin);
63 fclose(fout);
64 }
65
66 int main(){
67 Text2Bin("d:\\a1.txt","d:\\a2.txt"); //文件位置注意一下
68 Bin2Text("d:\\a2.txt","d:\\b2.txt");
69 printf("\nSuccessfully converted file!\n");
70 return 0;
71 }
c文件二进制读取写入文件:
1 #include<stdio.h>
2 #include<string.h>
3 #include<windows.h>
4 #include<time.h>
5 #define maxn 50
6 #define NSIZE 8
7 typedef struct
8 {
9 char na1[50],na2[50],na3[50],na4[50],na5[50];
10 } Route;
11 Route m[100005],temp;
12 char filename[50];
13 int number;
14 void add_Route()
15 {
16 system("cls");
17 printf("FlightNumber: OrginAirport: DestinationAirport: DepartureDate: \n");
18 scanf("%s%s%s%s%s",m[number].na1,m[number].na2,m[number].na3,m[number].na4,m[number].na5);
19 number++;
20 system("pause");
21 }
22 void export_file_Route() //导出文件
23 {
24 int i;
25 FILE * output = fopen("souce.txt","wb");//生成的stud.dat文件无法用记事本打开,打开后显示“乱码”。
26 if(output == NULL)
27 {
28 printf("Unable to open file");
29 exit(0);
30 }
31 fwrite(&m,sizeof(Route),number,output);
32 fclose(output);
33 }
34 void import_file_Route() //导入文件
35 {
36 int i;
37 char ch;
38 number=0;
39 FILE * input = fopen("souce.txt","rb");
40 if(input == NULL)
41 {
42 printf("Unable to open file");
43 exit(0);
44 }
45 int ans;
46 while((ans = fread(m,sizeof(Route),10005/*最多读取5个数据项*/,input))!=0)
47 {
48 for(i=0; i<ans; ++i)
49 printf("%s %s %s %s %s\n",m[i].na1,m[i].na2,m[i].na3,m[i].na4,m[i].na5),number++;
50 }
51 fclose(input);
52 }
53 void show()
54 {
55 int i;
56 system("cls");
57 printf("FlightNumber: OriginAirport: DestinationAirport: DepartureDate: \n");
58 for(i=0; i<number; ++i)
59 {
60 printf("%s %s %s %s %s\n",m[i].na1,m[i].na2,m[i].na3,m[i].na4,m[i].na5);
61 }
62 system("pause");
63 }
64 int main()
65 {
66 import_file_Route();
67 add_Route();
68 export_file_Route();
69 import_file_Route();
70 show();
71 }
c读取文件名可变:
1 #include<stdio.h>
2 #include<string.h>
3 #include<windows.h>
4 #include<time.h>
5 #define maxn 50
6 #define NSIZE 8
7 char filename[50];
8 int main()
9 {
10 FILE *fp=NULL;
11 printf("输入文件名:\n");
12 scanf("%s",filename);
13 strcat(filename,".txt");
14 fp=fopen(filename,"w");
15 fprintf(fp,"Success!\n");
16 fclose(fp);
17 return 0;
18 }
c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变的更多相关文章
- 关于Python中读取写入文件并进行文件与用户交互的操作
一.提前知识点 在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种: f = open('username.txt') ...
- nodejs 操作文件系统读取写入文件
我们通过fs这个模块来对文件系统进行操作,对于文件系统操作一般都有同步.异步方法,两者区别,同步等有返回结果时候,在继续执行后面的代码,异步是不等返回结果,直接执行后面的代码,待有返回结果时候,通过回 ...
- pandas-19 DataFrame读取写入文件的方法
pandas-19 DataFrame读取写入文件的方法 DataFrame有非常丰富的IO方法,比如DataFrame读写csv文件excel文件等等,操作很简单.下面在代码中标记出来一些常用的读写 ...
- php操作文件(读取写入文件)
一,PHP如何读取文件 PHP读取文件可以读取当前服务器或远程服务器中的文件.其步骤是:打开文件.读文件和关闭文件. 1,PHP如何打开文件 使用PHP函数fopen()打开一个文件,fopen()一 ...
- [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等
1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...
- ofstream文件输出流把二进制数据写入文件
#include <fstream> #include <sstream> using namespace std; //在实际应用中,根据需要的不同,选择不同的类来定义:如果 ...
- c++读取文件操作和写入文件
在C++中与读取文件和写入文件简单操作有关的类分别有ifstream(文件读入).ofstream(文件写出).fstream (文件读入和写出). 名称 作用 ifstream 文件读入 ofstr ...
- java读取写入文件
先来看一下java写入文件 public static void readTxt(String value) throws IOException { FileWriter fw = null; tr ...
- Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流
/* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创 ...
随机推荐
- 【Java】标识符
一.标识符 文章目录 一.标识符 1.标识符的命名规则 2.关键字.保留字.特殊值 3.code Java 对各种变量.方法和类等要素命名时使用的字符序列称为标识符.简单的说,凡是程序员自己命名的部分 ...
- ASP.NET Core错误处理中间件[2]: 开发者异常页面
<呈现错误信息>通过几个简单的实例演示了如何呈现一个错误页面,该过程由3个对应的中间件来完成.下面先介绍用来呈现开发者异常页面的DeveloperExceptionPageMiddlewa ...
- 【ORACLE】删除表空间,没有删除数据文件怎么办?解决办法
创建表空间 SQL> create tablespace TEST datafile='+DATA/rac/datafile/test01.dbf' size 1g; Tablespace cr ...
- C语言目的概念(C语言学习笔记)
什么是目 目是针对操作符来说的,一个操作符影响两个操作数就表示该操作符为双目运算符 举个例子: 1+2 这里的加号影响了1和2两个操作数,所以"+"就是双目运算符 +1,-1 这里 ...
- Hive常用性能优化方法实践全面总结
Apache Hive作为处理大数据量的大数据领域数据建设核心工具,数据量往往不是影响Hive执行效率的核心因素,数据倾斜.job数分配的不合理.磁盘或网络I/O过高.MapReduce配置的不合理等 ...
- Wi-Fi IoT套件连PCF8563实现电子钟功能
首先跟同样新入手单片机开发的小伙伴分享一点I2C通信的知识.我估计大部分入手开发板的小伙伴都有一定程序开发的能力,但是底层开发可能是新接触,我看有的小伙伴配置开发环境都有障碍,其实并不是多复杂,只是首 ...
- HTML部分
1.说一下<label>标签的用法 label标签主要是方便鼠标点击使用,扩大可点击的范围,增强用户操作体验 2.说一下事件代理? 事件委托是指将事件绑定到目标元素的父元素上,利用冒泡机制 ...
- NIO非阻塞网络编程原理
NIO非阻塞网络编程原理 1.NIO基本介绍 Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API.从 JDK1.4 开始,Java 提供了一系列改进的 输 ...
- Bitter.Core系列 十二 :Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore 之 支持的 where 条件表达式
Bitter.Core 内置了支持大部分的 linq 的条件表达式.基本上符合我们 where 条件所需.Bitter.Core 的支持 表达式内置 扩展 有: EndsWith 在Sql 解 ...
- all header field names in both HTTP requests and HTTP responses are case-insensitive.
https://tools.ietf.org/html/rfc6455#section-4.2.1 Please note that according to [RFC2616], all heade ...