Linux系统中,C语言源程序的编辑编译运行
如下这个C语言的源程序,如何在Linux系统中编辑,编译,运行,希望详细点,谢谢#include<stdio.h>#include<stdlib.h>#include<s...
如下这个C语言的源程序,如何在Linux系统中编辑,编译,运行,希望详细点,谢谢
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "headfile.h"
#define LEN sizeof (word)
wdp Initialize(void)
{
FILE *fp;
int n=0;
int i=0;
char ch,cl;
wdp head;
wdp p1,p2;
word wrd;
p1=p2=(wdp)malloc(LEN);
if((fp=fopen("dict.txt","r"))==NULL)
{
printf("CANNOT OPEN THE FILE THAT YOU NEED\n");
exit(1);
}
for(i=0;;i++)
{
ch=fgetc(fp);
cl=fgetc(fp);
if(ch!='\n')
p1->wd[i]=cl;
else break;
}
for(i=1;;i++)
{
ch=fgetc(fp);
if(ch!='\n')
{p1->trans[0]='T';
p1->trans[i]=ch;}
else break;
}
head=NULL;
do{
n++;
if (n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(wdp)malloc(LEN);
for(i=0;;i++)
{
ch=fgetc(fp);
if(ch!='\n')
p1->wd[i]=ch;
else break;
}
for(i=0;;i++)
{
ch=fgetc(fp);
if(ch!='\n')
p1->trans[i]=ch;
else break;
}
}while((ch=fgetc(fp))!=EOF);
p2->next=NULL;
fclose(fp);
return (head);
}
char * getOut(wdp wp,char word[])
{
int i=0;
char * q;
for(i=0;i<30;i++)
{
word[i]=wp->wd[i];
}
q=word;
return (q);
}
int cmpChar(char * dst,char * src)
{
if(strcmp(src,dst)==0)return 1;
else return 0;
}
int outPut(wdp wp)
{
int i=0;
printf("your word: ");
for(i=0;i<30;i++)
{
printf("%c",wp->wd[i]);
}
printf("\n");
for(i=0;i<=30;i++)
{
printf("%c",wp->trans[i]);
}
return 0;
}
头文件代码
typedef struct word
{
char wd[30];
char trans[300];
struct word *next;
}word,*wdp;
#ifndef HEADFILE_H_
#define HEADFILE_H_
struct word * Initialize(void);
char * getOut(struct word *,char []);
int cmpChar(char *, char * );
int outPut(struct word *);
#endif
Main函数代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "headfile.h"
int main(int argc,char* argv[])
{
word * wp1;
word * wp2;
char putin[30];
char getout[30];
int i=0;
wp1=Initialize();
wp2=wp1;
printf("*************************");
printf("\nENLISH-CHINESE DICTIONARY");
printf("\n*************************\n");
printf(" 一班二组 ");
a: printf("\n\nplease input word :");
scanf("%s",putin);
if((putin[0]=='e')&&(putin[1]=='x')&&(putin[2]=='i')&&(putin[3]=='t'))
exit(1);
while(!cmpChar(getOut(wp1,getout),putin))
{
if(wp1->next!=NULL)
wp1=wp1->next;
else break;
}
if(wp1->next!=NULL) outPut(wp1);
else printf("\n CONNOT FOUND YOUR WORD");
wp1=wp2;
goto a;
return 0;
} 展开
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "headfile.h"
#define LEN sizeof (word)
wdp Initialize(void)
{
FILE *fp;
int n=0;
int i=0;
char ch,cl;
wdp head;
wdp p1,p2;
word wrd;
p1=p2=(wdp)malloc(LEN);
if((fp=fopen("dict.txt","r"))==NULL)
{
printf("CANNOT OPEN THE FILE THAT YOU NEED\n");
exit(1);
}
for(i=0;;i++)
{
ch=fgetc(fp);
cl=fgetc(fp);
if(ch!='\n')
p1->wd[i]=cl;
else break;
}
for(i=1;;i++)
{
ch=fgetc(fp);
if(ch!='\n')
{p1->trans[0]='T';
p1->trans[i]=ch;}
else break;
}
head=NULL;
do{
n++;
if (n==1)head=p1;
else p2->next=p1;
p2=p1;
p1=(wdp)malloc(LEN);
for(i=0;;i++)
{
ch=fgetc(fp);
if(ch!='\n')
p1->wd[i]=ch;
else break;
}
for(i=0;;i++)
{
ch=fgetc(fp);
if(ch!='\n')
p1->trans[i]=ch;
else break;
}
}while((ch=fgetc(fp))!=EOF);
p2->next=NULL;
fclose(fp);
return (head);
}
char * getOut(wdp wp,char word[])
{
int i=0;
char * q;
for(i=0;i<30;i++)
{
word[i]=wp->wd[i];
}
q=word;
return (q);
}
int cmpChar(char * dst,char * src)
{
if(strcmp(src,dst)==0)return 1;
else return 0;
}
int outPut(wdp wp)
{
int i=0;
printf("your word: ");
for(i=0;i<30;i++)
{
printf("%c",wp->wd[i]);
}
printf("\n");
for(i=0;i<=30;i++)
{
printf("%c",wp->trans[i]);
}
return 0;
}
头文件代码
typedef struct word
{
char wd[30];
char trans[300];
struct word *next;
}word,*wdp;
#ifndef HEADFILE_H_
#define HEADFILE_H_
struct word * Initialize(void);
char * getOut(struct word *,char []);
int cmpChar(char *, char * );
int outPut(struct word *);
#endif
Main函数代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "headfile.h"
int main(int argc,char* argv[])
{
word * wp1;
word * wp2;
char putin[30];
char getout[30];
int i=0;
wp1=Initialize();
wp2=wp1;
printf("*************************");
printf("\nENLISH-CHINESE DICTIONARY");
printf("\n*************************\n");
printf(" 一班二组 ");
a: printf("\n\nplease input word :");
scanf("%s",putin);
if((putin[0]=='e')&&(putin[1]=='x')&&(putin[2]=='i')&&(putin[3]=='t'))
exit(1);
while(!cmpChar(getOut(wp1,getout),putin))
{
if(wp1->next!=NULL)
wp1=wp1->next;
else break;
}
if(wp1->next!=NULL) outPut(wp1);
else printf("\n CONNOT FOUND YOUR WORD");
wp1=wp2;
goto a;
return 0;
} 展开
展开全部
你定义的 "headfile.h"这个头文件因为你电脑上没有,所以你必须要自己创建一个文件存放代码。存放的位置就放到你XX.c文件的目录下就OK 。
现在你执行gcc -Wall XX.c 就会生成一个a.out文件。
只有执行./a.out 就可以执行程序了
当然你可以使用GDB调试程序。
现在你执行gcc -Wall XX.c 就会生成一个a.out文件。
只有执行./a.out 就可以执行程序了
当然你可以使用GDB调试程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、把中间“头文件代码”开始到“Main函数代码”之间的代码取出来制作成一个名为 “headfile.h” 的文件存放在你的工作目录上,把其它代码原封不动地复制出来构成一个文件保存到同一个目录,比如,叫 "MyC.c"
2、在命令行上下编译命令:
gcc -o MyC MyC.c
3、执行编译出来的程序:
./MyC
2、在命令行上下编译命令:
gcc -o MyC MyC.c
3、执行编译出来的程序:
./MyC
追问
headfile.h文件怎么存放在工作目录?
MyC.c如何保存到同一个目录?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gcc test.c -o test
然后键入./test
然后键入./test
追问
麻烦详细点行吗?谢谢
追答
意思是说,只要你的linux系统支持gcc命令编译,你就可以先用命令进入到该文件夹的路径,如cd ../hello/,确保你的头文件和源文件在这个路径
然后执行gcc sourcefile.c -o test就生成了一个test的可执行文件,当然还有 sourcefile.o的链接文件,我们只需要test的可执行文件就可以执行我们的应用程序
再就是执行了,./test就是执行命令,输出结果。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询