qq_34556554 2016-05-08 01:49 采纳率: 14.3%
浏览 1382
已采纳

有没有会编写c程序的大神,帮我看看两个单独的程序怎么合成一个程序,谢谢

#include
#include
struct e
{
char a[10];
char b[10];
}z;
int main()
{ int t=0;
char s[10],d[10];
FILE *p;
void as();
if ((p=fopen("m.txt","r+"))==NULL)
{
p=fopen("m.txt","w+");
t=1;
}
if(t==1)
{
printf("当前没有任何用户\n");
printf("请新建用户名: ");
scanf("%s",s);
printf("为用户设置密码: ");
scanf("%s",d);
strcpy(z.a,s);
strcpy(z.b,d);
fprintf(p,"%s %s",z.a,z.b);
fclose(p);
}
if(t==0)
{
printf("请输入用户名: ");

scanf("%s",s);
   fscanf(p,"%s %s",z.a,z.b);
   fclose(p);
   if (!strcmp(z.a,s))
{
    printf("请输入密码:");
 scanf("%s",d);getchar();
       if(!strcmp(z.b,d))
 {  char i;
          printf("是否要修改密码?(输入y修改,n退出!)");
          scanf("%c",&i);
          if(i=='y')
 {   
              printf("请输入修改密码:");
           scanf("%s",z.b);
              p=fopen("m.txt","w+");
              fprintf(p,"%s %s",z.a,z.b);
  fclose(p);

#include

#include

int main()

{

char str[31],temp[31]; //定义IP地址为32位的字符类型
int a,b,c,d; //定义IP地址的四个字节为a,b,c,d,并且均为整型的
Printf(“请输入IP地址”)
while(gets(str) != NULL)

{

if(scanf(str,"%d.%d.%d.%d",&a,&b,&c,&d)==4

&& a>=0 && a<=255

&& b>=0 && b<=255

&& c>=0 && c<=255

&& d>=0 && d<=255) //IP地址每个字节的范围限制
{

printf(temp,"%d.%d.%d.%d",a,b,c,d);

if(strcmp(temp,str)==0)

{

printf("IP地址合法\n");

}

else

{

printf("IP地址不合法\n");

}

}

else

{

printf("IP地址不合法\n");

}

}

return 0;

}
以上两个单独的程序都可以执行,但是怎么合成一个程序呢,麻烦大神们教教我

  • 写回答

3条回答 默认 最新

  • 小灸舞 2016-05-08 02:31
    关注

    1.将两个main函数里的代码分别封装到一个函数里
    2.IP那个函数里的scanf和printf都应该改成sscanf和sprintf

     #include<stdio.h>
    #include<string.h>
    struct e
    {
        char a[10];
        char b[10];
    }z;
    void fun1()
    { 
        int t=0;
        char s[10],d[10];
        FILE *p;
        void as();
        if ((p=fopen("m.txt","r+"))==NULL) 
        {
            p=fopen("m.txt","w+");
            t=1;
        }
        if(t==1)
        {
            printf("当前没有任何用户\n");
            printf("请新建用户名: ");
            scanf("%s",s);
            printf("为用户设置密码: ");
            scanf("%s",d);
            strcpy(z.a,s);
            strcpy(z.b,d);
            fprintf(p,"%s %s",z.a,z.b);
            fclose(p);
        }
        if(t==0)
        {
            printf("请输入用户名: ");
            scanf("%s",s);
            fscanf(p,"%s %s",z.a,z.b);
            fclose(p);
            if (!strcmp(z.a,s))
            {
                printf("请输入密码:");
                scanf("%s",d);getchar();
                if(!strcmp(z.b,d))
                {  
                    char i;
                    printf("是否要修改密码?(输入y修改,n退出!)");
                    scanf("%c",&i);
                    if(i=='y')
                    {   
                        printf("请输入修改密码:");
                        scanf("%s",z.b);
                        p=fopen("m.txt","w+");
                        fprintf(p,"%s %s",z.a,z.b);
                        fclose(p);
                    }
                }
            }
        }
    }
    void fun2()
    {
        char str[31],temp[31]; //定义IP地址为32位的字符类型
        int a,b,c,d; //定义IP地址的四个字节为a,b,c,d,并且均为整型的
        printf("请输入IP地址");
        fflush(stdin);
        while(gets(str) != NULL)
        {
            if(sscanf(str,"%d.%d.%d.%d",&a,&b,&c,&d)==4
                && a>=0 && a<=255
                && b>=0 && b<=255
                && c>=0 && c<=255
                && d>=0 && d<=255) //IP地址每个字节的范围限制
            {
                sprintf(temp,"%d.%d.%d.%d",a,b,c,d);
                if(strcmp(temp,str)==0)
                {
                    printf("IP地址合法\n");
                }
                else
                {
                    printf("IP地址不合法\n");
                }
            }
            else
            {
                printf("IP地址不合法\n");
            }
        }
    } 
    
    int main()
    {
        fun1();
        fun2();
    }
    

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler