#include "stdio.h"
  main()
  {int data;
   int max;
   FILE *fp;
   printf("please enter the max of data(1--10).\n");
   scanf("%d",&max);
   fp=fopen("d:\\dic.txt","w");
   for(data=0;data<max;data++)
   fputs("data",fp);
   fclose(fp);
   printf(" congratulation!dictionary complete.");
   exit(1);
  }
    假设输入10,按道理说dic.txt应该是0,1,2,3,4,5,6,7,8,9。可是我得到的却是“慤慴慤慴慤慴慤慴慤慴慤慴慤慴慤慴慤慴慤慴”,请问,这是怎么回事?

解决方案 »

  1.   

    你用ultraedit打开看到应该是"datadatadatadatadatadatadatadatadatadata",
    显示慤慴慤慴慤慴慤慴慤慴慤慴慤慴慤慴慤慴慤慴”应该是notepad的bugfputs("data",fp);//这句话的问题很明显。你是写入一个字符串" data"
    你可已用fwrite写入你的数字
      

  2.   

    fputs("data",fp);这句不对,应该先将data转换成字符串,再调用fputs(data,fp);
    最好用fprintf(fp,"%d",data);
      

  3.   

    fputs("data",fp);?????????????
    向文件中写字符串"data"????????
      

  4.   

    这样改:
    #include "stdio.h"
      main()
      {int data;
       int max;
       FILE *fp;
       char szBuffer[20]; //add
       printf("please enter the max of data(1--10).\n");
       scanf("%d",&max);
       fp=fopen("d:\\dic.txt","w");
       for(data=0;data<max;data++) {
         sprintf(szBuffer, "%d\r\n", data);
         fputs(szBuffer,fp);
       }
       fclose(fp);
       printf(" congratulation!dictionary complete.");
       exit(1);
      }