QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: top123

编程错误提示: missing terminating ' charater 是什么意思 ?

[复制链接]
 楼主| 发表于 2002-11-10 23:26:03 | 显示全部楼层
字符串 !
回复

使用道具 举报

 楼主| 发表于 2002-11-10 23:27:16 | 显示全部楼层
就是 给: ri[10] 副给 十个字符 !
回复

使用道具 举报

发表于 2002-11-10 23:27:47 | 显示全部楼层
我知道是字符串啊,但你的char r3[10]好像不行啊,你试试看char r3[11]了没有?
就是字符串才会多出一个字符'\0'来啊。
回复

使用道具 举报

 楼主| 发表于 2002-11-11 17:19:25 | 显示全部楼层
我在看看 !
那 提示: assign makes integer from apointer without a pointer
回复

使用道具 举报

 楼主| 发表于 2002-11-12 00:15:12 | 显示全部楼层
经过反复调试 终于通过了 谢谢大家!
回复

使用道具 举报

发表于 2002-11-12 00:33:31 | 显示全部楼层
呵呵,我觉得像字符串后面其实还带着一个'\0'很容易被忽略。
很惭愧啊,我学了一年C了,还什么真正的程序都没编过呢(不过自认基础还是学得不错的:P)。
以后还得跟大家多多学习呢。
回复

使用道具 举报

 楼主| 发表于 2002-11-12 10:37:13 | 显示全部楼层
没什么 ! 我也很菜的 !
你看看下面的程序:
#include<sys/types.h>
#include<stdio.h>
#include<unistd.h>
#include&lt;stdlib.h&gt;
void Randomnum(void);
pid_t p1,p2,p3,p4;
main(void)
{
int sysgiven=5;
  struct stares1{ int s;   char r1[11]; } statue1={0,"ABCDEFGHIJ"};
  struct stares2{ int s;   char r2[11]; } statue2={0,"KLMNOPQRST"};
  struct stares3{ int s;   char r3[11]; } statue3={0,"UVWXYZabcd"};
  struct stares4{ int s;   char r4[11]; } statue4={0,"efghijklmn"};
  struct stares5{ int s;   char r5[11]; } statue5={0,"opqrstuvwx"};  
  struct pidstatues{
                 int  name;
                 int  renum;
                 int  given;                 
                 int  nogiven;   
             }capro[4];               /* define struct over */
                                           /* initial data struct */

capro[0].name=1; capro[0].renum =3; capro[0].given=0; capro[0].nogiven=0;
capro[1].name=2; capro[1].renum =2; capro[1].given=0; capro[1].nogiven=0;  
capro[2].name=3; capro[2].renum =2; capro[2].given=0; capro[2].nogiven=0;
capro[3].name=4; capro[3].renum =4; capro[3].given=0; capro[3].nogiven=0;
  Randomnum();
if(p1&lt;0)   {
   printf(" fork error\n ");     exit(0);   }
  else if( (p1==0) || (p1==1) )   
   {   
      if((capro[0].renum &lt;= sysgiven) &amp;&amp; (capro[0].nogiven&lt;= sysgiven))
         {     
            if((statue1.s==0)&amp;&amp;(capro[0].given&lt;3)) { capro[0].given++;
            sysgiven--;       printf("%s\n",statue1.r1);      statue1.s = 1; }
      if((statue2.s==0)&amp;&amp;(capro[0].given&lt;3)) { capro[0].given++;         
     sysgiven--;       printf("%s\n",statue2.r2);      statue2.s = 1; }
            if((statue3.s==0)&amp;&amp;(capro[0].given&lt;3)) { capro[0].given++;
             sysgiven--;       printf("%s\n",statue3.r3);      statue3.s = 1; }        
           if((statue4.s==0)&amp;&amp;(capro[0].given&lt;3)) { capro[0].given++;
            sysgiven--;        printf("%s\n",statue4.r4);      statue4.s = 1; }
            if((statue5.s==0)&amp;&amp;(capro[0].given&lt;3)) { capro[0].given++;
              sysgiven--;        printf("%s\n",statue5.r5);      statue5.s = 1; }
             sysgiven = 5;     exit(1);             }
   else printf(" Dead \n");
    }
if(p2&lt;0)  
    { printf(" fork fault\n " );    exit(1);   }
else if((p2==0) || (p2==1))   
   {
       if((capro[1].renum &lt;= sysgiven) &amp;&amp; (capro[0].nogiven&lt;= sysgiven))
            {
         if((statue1.s==0)&amp;&amp;(capro[1].given&lt;3)) { capro[1].given++;
             sysgiven--;       printf("%s\n",statue1.r1);      statue1.s = 1; }
         if((statue2.s==0)&amp;&amp;(capro[1].given&lt;3)) { capro[1].given++;   
             sysgiven--;       printf("%s\n",statue2.r2);      statue2.s = 1; }     
         if((statue3.s==0)&amp;&amp;(capro[1].given&lt;3)) { capro[1].given++;
             sysgiven--;       printf("%s\n",statue3.r3);      statue3.s = 1; }   
         if((statue4.s==0)&amp;&amp;(capro[1].given&lt;3)) { capro[1].given++;           
             sysgiven--;       printf("%s\n",statue4.r4);      statue4.s = 1; }
         if((statue5.s==0)&amp;&amp;(capro[1].given&lt;3)) { capro[1].given++;
             sysgiven--;        printf("%s\n",statue5.r5);      statue5.s = 1; }
              sysgiven = 5;     exit(1);
             }
       else printf(" Dead \n");     
     }
if( p3&lt;0 ) {
    printf(" fork error\n " );    exit(1);}  
    else if((p3==0) || (p3==1))
   {
     if((capro[2].renum &lt;= sysgiven) &amp;&amp; (capro[0].nogiven &lt;= sysgiven))
       {   
          if((statue1.s==0)&amp;&amp;(capro[2].given&lt;3)) { capro[2].given++;
             sysgiven--;       printf("%s\n",statue1.r1);      statue1.s = 1; }
          if((statue2.s==0)&amp;&amp;(capro[2].given&lt;3)) { capro[2].given++;
            sysgiven--;        printf("%s\n",statue2.r2);      statue2.s = 1; }     
          if((statue3.s==0)&amp;&amp;(capro[2].given&lt;3)) { capro[2].given++;
            sysgiven--;        printf("%s\n",statue3.r3);      statue3.s = 1; }   
          if((statue4.s==0)&amp;&amp;(capro[2].given&lt;3)) { capro[2].given++;     
            sysgiven--;        printf("%s\n",statue4.r4);      statue4.s = 1; }  
          if((statue5.s==0)&amp;&amp;(capro[2].given&lt;3)) { capro[2].given++;
            sysgiven--;        printf("%s\n",statue5.r5);      statue5.s = 1; }
              sysgiven = 5;    exit(1);     }
       else printf(" Dead \n");  }
if( p4&lt;0 ) {
   printf(" fork error\n " );    exit(1); }
   else if((p4==0) || (p4==1))  
       {   
         if((capro[3].renum &lt;= sysgiven) &amp;&amp; (capro[0].nogiven &lt;= sysgiven))
         {
              if((statue1.s==0)&amp;&amp;(capro[3].given&lt;3)) { capro[3].given++;
             sysgiven--;       printf("%s\n",statue1.r1);      statue1.s = 1; }
              if((statue2.s==0)&amp;&amp;(capro[3].given&lt;3)) { capro[3].given++;
             sysgiven--;       printf("%s\n",statue2.r2);      statue2.s = 1; }
              if((statue3.s==0)&amp;&amp;(capro[3].given&lt;3)) { capro[3].given++;
             sysgiven--;       printf("%s\n",statue3.r3);      statue3.s = 1; }
              if((statue4.s==0)&amp;&amp;(capro[3].given&lt;3)) { capro[3].given++;        
             sysgiven--;       printf("%s\n",statue4.r4);      statue4.s = 1; }     
              if((statue5.s==0)&amp;&amp;(capro[3].given&lt;3)) { capro[3].given++;
             sysgiven--;       printf("%s\n",statue5.r5);      statue5.s = 1; }   
          sysgiven = 5;     exit(1);      }
         else printf(" Dead \n");  }
}
void Randomnum(void)
  {
      int i;  
      i = random();   
      i = i%4;
      switch(i){  
          case 0 :  p1 = fork();
          case 1 :  p2 = fork();
          case 2 :  p3 = fork();
          case 3 :  p4 = fork();
          default: printf("fork fault\n"); break;
        }
回复

使用道具 举报

 楼主| 发表于 2002-11-12 10:38:34 | 显示全部楼层
为什么执行到 p2&lt;0 以后 就在没有 进程执行了 ?
回复

使用道具 举报

 楼主| 发表于 2002-11-12 10:39:24 | 显示全部楼层
我执行了几十便了  还是那样 !
你帮忙调试 看看 !
回复

使用道具 举报

 楼主| 发表于 2002-11-12 21:23:55 | 显示全部楼层
回复呀 !
回复

使用道具 举报

发表于 2002-11-12 21:42:24 | 显示全部楼层
对不起。我也不懂,你还是找别人问吧。
还有就是你的代码没有用缩进格式来写,看起来确实太痛苦了:)
回复

使用道具 举报

发表于 2002-11-12 21:57:44 | 显示全部楼层
郁闷!缩进的不好,难看,不过这不是你的错。但是最后一行少一个“}”,再有就是没有#include "unistd.h"  。其它的我也没有耐心看了。
每一个case分句最好有一个break,可能问题出在这里,不同的编译器有不同的处理方法。
我虽然程序编得不好,但是非常看重编程风格。
回复

使用道具 举报

发表于 2002-11-12 22:00:46 | 显示全部楼层
最后缺少一个“}”可能是粘贴的问题,不过我不明白你第三个#include为什么后面没有东西。
我也是执行到p2&lt;0之后就没有了,下面是我的执行结果:
[root@dalin root]# ./test
fork fault
ABCDEFGHIJ
KLMNOPQRST
UVWXYZabcd
fork fault
ABCDEFGHIJ
KLMNOPQRST
UVWXYZabcd
回复

使用道具 举报

发表于 2002-11-12 22:06:02 | 显示全部楼层
我改了一下,这是不是你所期望的结果呢?
[wuwen@wuwenguan wuwen]$ ./a.out
fork fault
ABCDEFGHIJ
KLMNOPQRST
UVWXYZabcd
fork fault
ABCDEFGHIJ
KLMNOPQRST
UVWXYZabcd
[wuwen@wuwenguan wuwen]$
回复

使用道具 举报

发表于 2002-11-12 22:09:52 | 显示全部楼层
郁闷!原来"<unistd>"在这里显示不出来!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-27 02:24 , Processed in 0.039096 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

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