首页 > 解决方案 > fprintf 将整数和字符的内容打印到文件中

问题描述

必须清空 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();
            }
          }

如何使用字符和整数写入文件。如果有人帮忙就好了。提前致谢

标签: c

解决方案


推荐阅读