论坛: 编程破解 标题: 调用函数出错 复制本贴地址    
作者: yuanrulai [yuanrulai]    论坛用户   登录
这个程序如果不用函数调用的话可以使用
但是如果采用下面这样做法的话可以通过编译,但是运行时得不到结果,新建的那个文件是空的。请大家帮我看看,谢谢了!
windows xp+win tc
#include"stdio.h"
void main()
{
    int write();
    if(write()){
        puts("con't creat the file.\n");
        getch();
        exit(0);
    }
    puts("ok.\n");
    getch();
}
int write()
{
    FILE *fp;
    char ch;
    if((fp=fopen("文件名","w"))==NULL)return 1;
    ch=getchar();
    while(ch!='#'){
        if(fputc(ch,fp)==NULL)return 1;
        ch=getchar();
    }
    fclose(fp);
    return 0;
}
我还有一个问题就是
有一次我编一个程序没有在主函数中申明要调用的其他函数的类型
然后调用的时候就发生了一个错误
说我的参数类型不匹配,害得我郁闷了两天
后来无意中找到了原因
能给我解释一下其中的原因吗?
谢谢!

[此贴被 排山倒海(yuanrulai) 在 09月21日09时45分 编辑过]

地主 发表时间: 04-09-12 00:23

回复: xiaohe616 [xiaohe616]   论坛用户   登录
两个错误

if(fputc(ch)==NULL)return 1;fpuut()函数参数错误,return前没有fclose()(是不是必要?)

write()改名,改成任意不与库函数名重名的名称_^_


B1层 发表时间: 04-09-12 11:35

回复: xiaohe616 [xiaohe616]   论坛用户   登录
“有一次我编一个程序没有在主函数中申明要调用的其他函数的类型
然后调用的时候就发生了一个错误”

这个问题吗,因为你用的是TC,默认返回类型是int,如果不声明就使用,编译器认为是int函数,
但是你的函数返回是其它类型的,就会出错。如果用的其它编译器,不声明可能就会通不过。

再有一个,你用的书可能是很“古董”的,嘿嘿

B2层 发表时间: 04-09-12 11:44

回复: yuanrulai [yuanrulai]   论坛用户   登录
thankyou very much.

B3层 发表时间: 04-09-12 17:56

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号