2 qq 34556554 qq_34556554 于 2016.05.08 09:13 提问

有个c程序不懂,麻烦大神看看~~ 5C

#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);

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;

}
C:\Users\Administrator\Desktop\Cpp1.cpp(83) : fatal error C1004: unexpected end of file found
这是什么意思,有大神帮忙解决下吗

3个回答

caozhy
caozhy   Ds   Rxr 2016.05.08 09:23

代码错得太多了,这个程序有两个main函数,还各干各的。前一个函数代码不全,括号都不配对,后面程序printf大小写都不对,变成Printf,感觉你的代码是胡乱从word文档里粘贴的。

caozhy
caozhy 回复qq_34556554: 你要搞清楚程序在干什么,它们之间的关系是什么,添加和修改适当的代码,才好合并。
大约 2 年之前 回复
qq_34556554
qq_34556554 回复caozhy:那要怎么才可以把这两个程序合成一个程序呢
大约 2 年之前 回复
caozhy
caozhy 回复qq_34556554: 这不是word文档,两个程序就粘贴在一起就算一个程序了。你如果一瞧不通,还是找一个懂程序的人帮你吧。
大约 2 年之前 回复
qq_34556554
qq_34556554 您好,我这两个代码单独执行都是可以的,但是合在一起的话需要怎么修改才可以执行呢
大约 2 年之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.05.08 10: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();
}

图片说明

CSDNXIAON
CSDNXIAON   2016.05.10 09:01

程序一直报错,不知道该如何改了,望各位大神帮我看看
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
连编程语言都不懂?看完这篇你也会写区块链
咨询了一下业内的程序员叔叔们,对于写区块链的语言他们是这样说的:“本质上,原理搞懂了,什么主流语言都能实现。” “呵呵”狼而,我连什么是编程语言都不懂。中成才叔叔解释道:“我们知道,从远古时期到当代,建筑的形态经历了巨变。原材料也从山洞、石板、木材、水泥、钢材演变到复合木材。但原材料要能够被用于构筑大型建筑,还需要先把它们改造成各种不同形状不同用途的半成品材料,再由这些半成品材料二次组装成完整建筑
有个计算机大神的男朋友是个什么感觉?
工作以来,事情有点多,推送渐少,还请各位兄台包涵。虽说工作上不忙,但是每天下班回来洗洗、看看书时间也就过去了,打开微信公众号看看大家的后台留言,想到该推送了,但是不知道写点什么,毕竟我也不想污染你们的微信公众号消息,也就每次周末的时候,可以静下心来再写写文章与总结。 这样就有人要问了,那今天周五你怎么写文章了?这篇文章不是我写的,是我女朋友写的,关于这篇文章的由来,她有一个小故事
L1-009. N个数求和
L1-009. N个数求和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数“分子/分母”的形式给出的,你输出的和也必须是有理数的形式。
河南理工大学综合分测评系统
用于对学生综合分的测评及年终奖学金的计算,使用ASP语言编写,方便快捷
N个数求和
5-1 N个数求和   (20分)本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(\le≤100)。随后一行按格式a1/b1 a2/b2 ...给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写...
【天梯赛-练习题】L1-009 N个数求和
一道分数求和题。
5-1 N个数求和 (20分)
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出一个正整数N(≤\le≤100)。随后一行按格式a1/b1 a2/b2 ...给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。 输出格式: 输出上述数字和的最简形式 —— 即将结果写成整数部分
N个数的加和 (16年天梯赛模拟题)
blablabla: 刚开始做方向就错了= = 果然还是得先整体再局部 thought:先通分,以通分后的分数相加后分出整数部分和分数部分,注意正负,注意读题–长整形 http://blog.csdn.net/disparity_cjk/article/details/51445072 默默的发现一只大佬=_= 谢谢可敬的ACMer 5-1 N个数求和 (20分)本题的要求很简单,
获取QQ群成员源码
这个是个源码程序,相当好用!大家可以看看哦!!有什么不懂的可以随时咨询我!
推荐一个大神的博客--chenssy
chenssy大神的博客无意中阅读到这个博主的文章,然后就饶有兴致地把他的所有文章都阅读了一遍,从10年到17年,仿佛读一段故事,很有趣也很有吸引力,本人16年毕业的,然后按照时间轴和博主的时间轴对比了一下,的确需要努力的地方还很多,比如看书、比如坚持。在这里分享一下,看着前辈的经验,有时候也是我们的指路明灯,共勉。