mai_ki1 发表于 2010-4-25 19:16:20

大家帮我看看到底是什么问原因造成的

大家好!本人菜鸟一只,目前正在学习LRC Vuser脚本编写。今天照着书上输入以下代码:

#define USERCOUNT 100
Action()
{   char *namecommon="people";
    char *passwordcommon="people";
    char *filename="C:\\marks.txt";
    long file=NULL;
    int i=0;
    char username;
    char password;
   
    if(file=fopen(filename,"wt+")==NULL)
       {lr_output_message("Uable to create %s",filename);
      return -1;
       }
    for(i=0;i<USERCOUNT;i++)
   {
    sprintf(username,"%s%d",namecommon,i);
    sprintf(password,"%s%d",passwordcommon,i);
    strcat(username," ");
    strcat(username,password);
    strcat(username,"\r\n");
    fwrite(username,strlen(username),1,file);
   
   }
   fclose(file);
return 0;


}

编译未产生问题,但是在运行时出现以下错误提示:

Starting action Action.
Action.c(22): Error: C interpreter run time error: Action.c (22):Error -- memory violation : Exception ACCESS_VIOLATION received.
Action.c(22): Notify: CCI trace: Action.c(22): fwrite(0x00ca0020 "people0 people0\r\n", 17, 1, 0)
.
Action.c(22): Notify: CCI trace: Compiled_code(0): Action()
.
Ending Vuser...

使用断点调试一下,发现是运行完fwrite(username,strlen(username),1,file);就提示错误了。。。

我对比了一下书上写的,已经是一摸一样的了,但是就是出错。麻烦各位高手帮我看看是什么原因。
还有就是我在脚本里输入“\”符号总是会变成“¥”,不知道这个是什么原因呢?哪里可以改呢?

[ 本帖最后由 mai_ki1 于 2010-4-25 19:43 编辑 ]

mai_ki1 发表于 2010-4-25 21:01:31

哈哈,找到问题的原因了


      if(file=fopen(filename,"w+")==NULL)
    {
lr_output_message("Uable to create %s",filename);
      return -1;
    }




改成
    file=fopen(filename,"w+");
    if(file==NULL)
    {
lr_output_message("Uable to create %s",filename);
      return -1;
    }


就OK了!

zhoward 发表于 2010-4-29 16:07:43

我是菜鸟, 但都知道你错在什么地方
      if(file=fopen(filename,"w+")==NULL)
需要改成      if((file=fopen(filename,"w+"))==NULL)

aman_cao 发表于 2010-4-30 14:37:11

if((file=fopen(filename,"wt+"))==NULL)
=是赋值操作
页: [1]
查看完整版本: 大家帮我看看到底是什么问原因造成的