fprintf将内容打印到整数和字符的文件中

时间:2018-05-13 16:14:19

标签: c

当缓冲区已满时,必须清空具有310字节的缓冲区并将缓冲区的内容写入ASCII文件,当我使用以下代码行执行程序时,文件的内容正确写入10行,每行包含31个字节。 buffUSed值为10,buffSize为10,actSize变量为30。

            if(buffUsed == buffSize)
            { 
              retOpen = createASCIIFile();
              x = 1;
              for(i =0 ;i<(buffUsed*(actSize+1));i++)
              {
                    if(i==(x*31))
                    {
                      fprintf(fPtr,"\n");
                      x++;
                    }               
                    fprintf(fPtr,"%c",buffer[i]);
                 }
              }

但缓冲区包含字符和整数,所以当我尝试按以下方式执行时,写入文件的内容为空,只包含一行而不是10行。

if(buffUsed == buffSize)
            { 
              retOpen = createASCIIFile();
              x = 1;
              for(i =0 ;i<(buffUsed*(actSize+1));i++)
              {

                for(i =i ;i<(buffUsed*(actSize+1));i++)
                {
                  if(i==x*(actSize+1))
                  {
                    fprintf(fPtr,"\n");
                    x++;
                  }

                  for(j=i+((buffUsed-1)*(actSize+1)); j<19+((buffUsed-1)*(actSize+1));j++)
                  {
                    fprintf(fPtr,"%c",buffer[j]);
                  }

                  for(k=j;k<23+((buffUsed-1)*(actSize+1));k++)
                  {
                    fprintf(fPtr,"%d",buffer[k]);
                  }

                  for(l=k;l<(actSize+1)+((buffUsed-1)*(actSize+1));l++)
                  {
                    fprintf(fPtr,"%d",buffer[l]);
                  } 
                  i=l-1;
                }     
              }
              retOpen = closeFile();
              fileRename();
            }
          }

如何使用字符和整数写入文件。如果有人帮忙会很棒。提前谢谢

0 个答案:

没有答案