当缓冲区已满时,必须清空具有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();
}
}
如何使用字符和整数写入文件。如果有人帮忙会很棒。提前谢谢