带参数的main函数(一)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
自己改的程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef char BYTE;
typedef float DWORD;
 
int main(int argc,char *argv[])
{
    int i;
    FILE *fp1,*fp2;
    int aa,bb;
 
    sscanf(argv[2],"%d",&aa);         //将字符符型改为整型
                                       //sscanf函数参见msdn或者百度,google
    sscanf(argv[3],"%d",&bb);
 
 
    BYTE  *data1=(BYTE *)malloc(aa*bb*sizeof(BYTE));
     
    printf("%d\n",aa*bb);     //用于调程序时候查看参数传的是否正确。
 
    DWORD *data2=(DWORD *)malloc(aa*bb*sizeof(DWORD));
     
    if((fp1=fopen(argv[1],"rb"))==NULL)
    {
         printf("can not open file!");
         return 0;
    }
    if((fp2=fopen(argv[4],"w"))==NULL)
    {
        printf("can not open file!");
        return 0;
    }
 
    memset(data1,0,aa*bb*sizeof(BYTE));     /* 初始化 */
    memset(data2,0,aa*bb*sizeof(DWORD));
     
    fread(data1,sizeof(char),aa*bb,fp1);        /* 将fp1里面的内容读入到data1*/
 
    for(i=0;i<aa*bb;i++)
    {
        data2[i]=((int)data1[i])*1.0;                           /* data1里面的数据转换为浮点型 */
    }
     
    for(i=0;i<aa*bb;i++)
    {
        if((i%bb)==0)                                   /* 一行640列 */
        {
            if(i==0)                                            /* 写进去的第一个数字 如果省略,第一行将会多换空白 */
            {
                fprintf(fp2,"%-4.0f",data2[i]);
            }
            else
            {
                fprintf(fp2,"\n",data2[i]);                     /*  每640列换行 */
                fprintf(fp2,"%-4.0f",data2[i]);                 /* 换行完还得继续写数据,不能忘记 */
            }      
        }
        else
        {                  
            fprintf(fp2,"%-4.0f",data2[i]);                     /* 再把浮点转换为字符并写入到fp2里面 */
        }
    
         
    fclose(fp1);
    fclose(fp2);
    free(data1);
    free(data2);
     
    return 0;
}

 

 

posted @   _cc  阅读(773)  评论(0编辑  收藏  举报
编辑推荐:
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
阅读排行:
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
· AI Agent爆火后,MCP协议为什么如此重要!
· 【译】Visual Studio(v17.13)中新的调试和分析特性
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
点击右上角即可分享
微信分享提示