鱼C论坛

 找回密码
 立即注册
查看: 3358|回复: 3

fopen函数求解

[复制链接]
发表于 2011-4-18 17:33:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
//拷贝文件程序
#include <stdio.h>
int main (void)
{
    char inname[64], outname[64];
        FILE *in, *out;
        int c;
       
        //从使用者取到文件名
        printf ("enter name of file to be copied: ");
        scanf ("%63s", inname);
        printf ("enter name of output file: ");
        scanf ("%63s", outname);
       
        //打开输入输出文件
        if ( (in = fopen (inname, "r")) == NULL)
            {
                    printf ("can't open %s for reading.\n", inname);
                        return 1;//为什么是return 1?
                }
        if ( (out = fopen (outname, "w")) == NULL)
            {
                    printf ("can't open %s for writing.\n", outname);
                        return 2;//为什么是return2?
                }
       
        //复制in 到 out
        while ( (c = getc (in)) != EOF)
            putc (c, out);
               
        //关闭文件
        fclose (in);
        fclose (out);
       
        printf ("file has been copied.\n");
        return 0;
}
其中的两个return 1和return 2求解?为什么呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-23 17:05:59 | 显示全部楼层
我没具体查,但是这里的return是相对于int main(void)这个函数的,返回0表示正常返回,返回1和2就是错误返回,只是返回的类型不同,百度一下应该就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-12 17:43:12 | 显示全部楼层
EXIT_SUCCESS, which represents a value of 0, or EXIT_FAILURE, which represents a value of 1
一般以0和1来区分,return 0表示成功退出,1表示失败。
当然可以自己定义错误代码、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-13 13:35:08 | 显示全部楼层
本质上,对于main函数的返回值,你可以随便写,只要写的是个整数(能转换为整数)就可以,你可以写-1,-2,-10000,9999等等。这些返回值的意义一般你要实现和使用你这个exe程序的人说好。

当然这里涉及一个问题,就是你的程序里可以“调用”(准确说是开个进程)别人写的exe文件,这个估计现在LZ写不出来,只有你这样用了,才可能需要用到main函数的返回值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 14:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表