打印

《C语言教程》20章 main()函数

[复制链接]
598|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、main()函数特有的参数“argc和argv”

在第一章中讲过main()函数的参数,但没有讲怎么使用。argc(即argument Count)和argv(argument vector)是main()函数特有的参数,“argc”不用传入,是系统自动计算参数的个数放入这个参数中,不过,exe程序名自身也处一个,也就是说,一个参数也没有的情况,argc应该等于1。小雅曾试着用于普通函数,但都没有自动计数的特殊功能。


#include <stdio.h>

int main(int argc, char **argv)
{

    int i;

    printf("argc = [%d]\n", argc);

    for (i=0; i<argc; i++) {
        printf("%s\n", argv[i]);
    }

    return 0;

}


相关下载

相关帖子

沙发
niuyaliang|  楼主 | 2015-3-17 20:46 | 只看该作者
上例中“this is quanxue”本来想作为一个字符串输出,结果却变成3个,连同test.exe共4个了。解决带有空格的字符串是用双引号,例如要带参数“小雅”和“this is quanxue”。
在Unix中单引号、双引号都可以,也可以不用引号,空格使用转义字符“\ ”。

使用特权

评论回复
板凳
niuyaliang|  楼主 | 2015-3-17 20:47 | 只看该作者
二、环境变量的取得
在第一章介绍main()函数时,省略了第三种定义,并非小雅当时还不知道,而是认为实在没有必要,因为标准函数库里面已经有了getenv()函数,简单方便地取任何环境变量的值,也许这第三种定义还有小雅不知道的好处吧。至于getenv()函数这儿不讲,以后在标准函数库中讲解。

#include <stdio.h>

int main(int  argc,
         char **argv,
         char **envp
        )
{
    int i;

    //显示前5个环境变量
    for (i=0; i<5; i++) {
        printf("%s\n", envp[i]);
    }

    return 0;

}

使用特权

评论回复
地板
niuyaliang|  楼主 | 2015-3-17 20:48 | 只看该作者
三、输入重定向
对于从屏幕中要输入的内容,可以事先输入在文本文件中,运行程序时用“<”将文件导入。注意,从屏幕中直接输入时,因为有回车符,所以显示时与读取文件略有不同。
#include <stdio.h>

int main(void)
{
    int x, y ;
    char str[128];    //确保足够的空间

    //输入整数x和y的值
    printf("请输入x和y的值: ");
    scanf("%d,%d", &x, &y);
    printf("x=[%d], y=[%d]\n\n", x, y);

    //输入字符串str的值
    printf("请输入str的值: ");
    scanf("%s", str);
    printf("str=[%s]\n", str);

    return 0;
}


使用特权

评论回复
5
niuyaliang|  楼主 | 2015-3-17 20:49 | 只看该作者
三、输出重定向
输入可以重定向,输出也可以重定向,不过符号得改为“>”。也就是将输出结果放到一个文本文件中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝