鱼C论坛

 找回密码
 立即注册
查看: 929|回复: 7

[已解决]多个文件的问题

[复制链接]
发表于 2020-8-24 22:28:12 | 显示全部楼层 |阅读模式

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

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

x
谭浩强《C语言程序设计》第七章例题:
file1.c(文件1)
#include <stdio.h>
int main()
{
        extern void enter_string(char str[]);        //对函数的声明
        extern void delete_string(char str[],char ch);        //对函数的声明
        extern void print_string(char str[]);        //对函数的声明
        //以上3行声明在本函数中将要调用的已在其他文件中定义的3个函数
        char c,str[80];
        enter_string(str);        //调用在其他文件中定义的enter_string函数
        scanf("%",&c);        //输入要求删去的字符
        delete_string(str,c);        //调用在其他文件中定义的delete_string函数
        print_string(str);        //调用在其他文件中定义的print_string函数
        return 0;
}


file2.c(文件2)
void enter_string(char str[80])        //定义外部函数 enter_string 
{
        gets(str);        //向字符数组输入字符串
}


file3.c(文件3)
void delete_string(char str[],char ch)        //定义外部函数delete_string
{
        int i,j;
        for(i = j = 0;str[i] != '\o';i++)
        if(str[i] != ch)
        str[j++] = str[i];
        str[i] = 'o';
}


file4.c(文件4)        //定义外部函数print_string
void print_string(char str[])
{
        printf("%s\n",str);
}

写成这样,我不知怎么编译了。是要将 file1、file2、file3、file4 分别编译成 C 文件吗?若是,是编译好了以后,放同一个文件包里,再运行 file1吗?
最佳答案
2020-8-25 11:25:11
风过无痕1989 发表于 2020-8-25 10:45
那请教你另一个问题吧(其实还是上面这个题,我想将 file1 作一些修改),程序如下:
// 谭浩强C语言程序设计》第七章例题:有一个字符串,内有若干个字符,现输入一个字符,
// 要求程序将字符串中该字符删去。用外部函数实现。
#include <stdio.h>
int main()
{
        extern void enter_string(char str[]);        //对函数的声明
        extern void delete_string(char str[],char ch);        //对函数的声明
        extern void print_string(char str[]);        //对函数的声明
        //以上3行声明在本函数中将要调用的已在其他文件中定义的3个函数
        char c,tem,str[80];
        enter_string(str);                //调用在其他文件中定义的enter_string函数
        scanf("%c%*c",&c);                        //输入要求删去的字符
        printf("程序将删除字符串中所有的字符 %c,是否继续?\n",c);
        printf("按任意键继续删除,按 N 键中止\n");
        scanf("%c",&tem);
        if (tem != 'N')
        {
                delete_string(str,c);        //调用在其他文件中定义的delete_string函数
        }
        print_string(str);                //调用在其他文件中定义的print_string函数
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-25 08:08:25 | 显示全部楼层
谭浩强的书就别看啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-25 09:14:57 | 显示全部楼层

快看完了,还有三章。看完它,也算是有始有终吧;

你推荐一本网络编程的书吧,看完那三章,下一步想学网络编程;

上面的问题,我已经试成功了,与我猜想是一致的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 09:33:11 | 显示全部楼层
风过无痕1989 发表于 2020-8-25 09:14
快看完了,还有三章。看完它,也算是有始有终吧;

你推荐一本网络编程的书吧,看完那三章,下一步想学 ...

很可惜,我自己都不会网络编程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 10:19:17 | 显示全部楼层
链接: https://pan.baidu.com/s/1xiCAcJz3ZZh99cVD5GBIhg 提取码: 2u3h

里面有个尹圣雨写的  写的比较简单  入门还不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-25 10:37:57 | 显示全部楼层
tttxiaoz 发表于 2020-8-25 10:19
链接: https://pan.baidu.com/s/1xiCAcJz3ZZh99cVD5GBIhg 提取码: 2u3h

里面有个尹圣雨写的  写的比较简 ...

已经下载,看了一下适合人群,应该不错,谢谢朋友!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-25 10:45:22 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-8-25 09:33
很可惜,我自己都不会网络编程

那请教你另一个问题吧(其实还是上面这个题,我想将 file1 作一些修改),程序如下:
// 谭浩强C语言程序设计》第七章例题:有一个字符串,内有若干个字符,现输入一个字符,
// 要求程序将字符串中该字符删去。用外部函数实现。
#include <stdio.h>
int main()
{
        extern void enter_string(char str[]);        //对函数的声明
        extern void delete_string(char str[],char ch);        //对函数的声明
        extern void print_string(char str[]);        //对函数的声明
        //以上3行声明在本函数中将要调用的已在其他文件中定义的3个函数
        char c,tem,str[80];
        enter_string(str);                //调用在其他文件中定义的enter_string函数
        scanf("%c",&c);                        //输入要求删去的字符
        printf("程序将删除字符串中所有的字符 %c,是否继续?\n",c);
        printf("按任意键继续删除,按 N 键中止\n");
        scanf("%c",&tem);
        if (tem != 'N')
        {
                delete_string(str,c);        //调用在其他文件中定义的delete_string函数
        }
        print_string(str);                //调用在其他文件中定义的print_string函数
        return 0;
}

第二个输入语句 scanf("%c",&tem) 无效果(等待输入的动作都没有),也就是程序运行时,if 语句是用一个乱码来与 'N' 比较,所以,就直接执行下面的删除语句了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 11:25:11 | 显示全部楼层    本楼为最佳答案   
风过无痕1989 发表于 2020-8-25 10:45
那请教你另一个问题吧(其实还是上面这个题,我想将 file1 作一些修改),程序如下:
// 谭浩强C语言程序设计》第七章例题:有一个字符串,内有若干个字符,现输入一个字符,
// 要求程序将字符串中该字符删去。用外部函数实现。
#include <stdio.h>
int main()
{
        extern void enter_string(char str[]);        //对函数的声明
        extern void delete_string(char str[],char ch);        //对函数的声明
        extern void print_string(char str[]);        //对函数的声明
        //以上3行声明在本函数中将要调用的已在其他文件中定义的3个函数
        char c,tem,str[80];
        enter_string(str);                //调用在其他文件中定义的enter_string函数
        scanf("%c%*c",&c);                        //输入要求删去的字符
        printf("程序将删除字符串中所有的字符 %c,是否继续?\n",c);
        printf("按任意键继续删除,按 N 键中止\n");
        scanf("%c",&tem);
        if (tem != 'N')
        {
                delete_string(str,c);        //调用在其他文件中定义的delete_string函数
        }
        print_string(str);                //调用在其他文件中定义的print_string函数
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-13 07:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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