类型 转换

 类型转换

Code:
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <string.h>  
  4.   
  5. typedef   char     BYTE;    //1byte  
  6.   
  7. void main()  
  8. {  
  9.     int i, j;       /*  定义两个整型变量    */  
  10.   
  11.     FILE *fpBin, *fpTxt;        /*  定义两个文件型指针变量 */  
  12.   
  13.     BYTE *data = (BYTE *)malloc(4); /*  定义字符指针,申请了一个指针,指向的内存为4字节,每个字符仍是占一个字节 
  14.                                      * 对应的用完需要释放,释放需要用到free(data)    
  15.                                      *  相当于char data[4]; 
  16.                                      */  
  17.   
  18.       
  19.     if(NULL == (fpBin = fopen(".//sample""rb")))  /*  判断用fopen打开的文件流是否为空,fpopen("路径及所要打开的文件名","打开方式") 
  20.                                                      * 在此为用二进制方式打开sample文件,并把读到地结果放到bpBin。 
  21.                                                      */  
  22.                                                        
  23.     {  
  24.         printf("二进制文件打开失败!/n");  /* 如果文件为空无法读取,或者路径出错则弹出出错提示    */  
  25.         return;  
  26.     }  
  27.     if(NULL == (fpTxt = fopen(".//sample.txt""w")))  /*   语句格式同上。意义:写入sample.txt数据,如果没有这个文件则会重新建立一个。*/  
  28.     {  
  29.         printf("文本文件打开失败!/n");      /*  如果文件为空无法写入,或者路径出错则弹出出错提示    */  
  30.         return;  
  31.     }  
  32.   
  33.     for(i=0; i<400; i++)                /* 控制外面的400行循环 */  
  34.     {  
  35.         for(j=0; j<640; j++)            /* 内重循环640行 */  
  36.         {  
  37.             memset(data, 0, 4);         /* *data进行初始化 */  
  38.   
  39.             fread(data, 1, 1, fpBin);   /* 把fpBin里面的数据放到data里面  
  40.                                          * 第一个参数是指要把读到的文件存放的地方 
  41.                                          * 第二个是指这种类型在内存中占多少字节,如果不知道可以写sizeof(类型名) 
  42.                                          * 第三个是指一次读取的字节数     
  43.                                          * 第四个是指从谁读取 
  44.                                          */       
  45.               
  46.             itoa(*data, data, 10);      /* 把*data里面的数据转换为十进制放入到data里面 
  47.                                          * 第一个参数是要转换的数据,第二个参数要是存放数据的地址,第三个是要进行转换的进制 
  48.                                          */  
  49.   
  50.   
  51.             fwrite(data, 1, 4, fpTxt);  /* 把读到的data里面的数据写入到fpTxt里面 
  52.                                          * 
  53.                                          * 第一个参数是要写的数据地址 
  54.                                          * 第二个参数是要读取的字节数,也就是每次要写的字节数 
  55.                                          * 第三个是要读字节所占的内存空间的大小,也就是每次要对字节进行写入的次数 
  56.                                          * 第四个是要把读出来的数据写到的地方 
  57.                                          * 第二个参数和第三个参数的乘积就是要写入的位数 
  58.                                          */  
  59.              
  60.         }  
  61.         *data = '/n';          /*   把数据*data后面补一个换行符也就是第640列的时候换到下一行 */  
  62.         fwrite(data, 1, 1, fpTxt);  /*  换回车换行符写到fpTxt里面 */  
  63.     }  
  64.   
  65.     fclose(fpBin);  /*  关闭文件fpBin */  
  66.     fclose(fpTxt);  /*  关闭文件fpTxt */  
  67.     free(data);     /*  释放data*/  
  68. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值