| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:命令行参数的问题
只看楼主 加入收藏
gaia
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-7-25
收藏
 问题点数:0 回复次数:0 
命令行参数的问题
题目是:编写一个程序,该程序用命名行参数读取两个二进制字符串,并打印对每个数使用~运算符的结果以及对这个数使用&、|和^运算符的结果。使用二进制字符串形式显示结果

这是我的代码:
#include <stdio.h>
#define MAXSIZE 1000

int bintoi (char *);
void cal (int, int, char * []);
char * itobs (int, char *);
void show_bstr (const char *);

int main (int argc, char * argv[])
{
    int num1;
    int num2;

    num1 = bintoi (argv[1]);
    num2 = bintoi (argv[2]);

    cal(num1, num2, argv);
    return 0;
}

int bintoi (char * pbin)
{
    int count;
    int index;
    int n;
    int total = 0;

    for (count = 0; *pbin != '\0'; count++, pbin++)
    ;

    *pbin--;
    index = count;

    while (count)
    {
        if(*pbin != '0')
        {
            n = *pbin - '0';
            n <<= index - count;
            total += n;
        }

        pbin--;
        count--;
    }

    return total;
}

void cal (int num1, int num2, char * argv[])
{
    int ans;
    char bin_str[MAXSIZE];

    printf ("~%s is", argv[1]);
    show_bstr(itobs(~num1, bin_str));
    putchar ('\n');

    printf ("~%s is ", argv[2]);
    show_bstr(itobs(~num2, bin_str));
    putchar ('\n');

    ans = num1 & num2;
    printf ("%s & %s is ", argv[1], argv[2]);
    show_bstr(itobs(ans, bin_str));
    putchar ('\n');
    ans = num1 | num2;
    printf ("%s | %s is ", argv[1], argv[2]);
    show_bstr(itobs(ans, bin_str));
    putchar ('\n');

    ans = num1 ^ num2;
    printf ("%s ^ %s is ", argv[1], argv[2]);
    show_bstr(itobs(ans, bin_str));
    putchar ('\n');
}

char * itobs (int n, char * ps)
{
    int i;
    static int size = 8 * sizeof (int);

    for (i = size - 1; i >= 0; i--, n >>= 1)
        ps[i] = (01 & n) + '0';
    ps[size] = '\0';

    return ps;
}

void show_bstr (const char * str)
{
    int i = 0;
    while (str[i])
    {
        putchar(str[i]);

        if (++i % 4 == 0 && str[i])
        putchar (' ');
    }
}

就是编译的时候跳出对话框“XXX.exe遇到问题需要关闭。。。”
而不用命令行参数是可以编译通过的。
这是哪里出错了??
搜索更多相关主题的帖子: 参数 命令 
2008-07-25 17:35
快速回复:命令行参数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036247 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved