示例程序 EXAM8 中,有如下程序段: total += sprintf( FILE_DATA_BUF + total, "在本次添加数据之前,该文件已有数据\xd\xa", CH375vFileSize ); // 将新数据添加到缓冲区的尾部,累计缓冲区内的数据长度 mFlushBufferToDisk( 0 ); // 自动刷新缓冲区,检查缓冲区是否已满,满则写盘 ......... ......... /* 用定时器0的计数值代替ADC数据 */ total += sprintf( FILE_DATA_BUF + total, " ********************************* " ); // 将新数据添加到缓冲区的尾部,累计缓冲区内的数据长度 total += sprintf( FILE_DATA_BUF + total, "这次的ADC数据到此结束,程序即将退出\xd\xa" ); // 将新数据添加到缓冲区的尾部,累计缓冲区内的数据长度 mFlushBufferToDisk( 1 ); // 强制刷新缓冲区,因为系统要退出了,所以必须强制刷新

我在主程序中,去掉了 ADC数据 输入部分,只沿用了以上给出的程序段,在编译调试时,编译提示:total += sprintf( FILE_DATA_BUF + total, " ********************************* " ); 和 total += sprintf( FILE_DATA_BUF + total, "这次的ADC数据到此结束,程序即将退出\xd\xa" );命令行出错!(Wrong number of arguments) 当我将该两行命令后添加参数 CH375vFileSize 之后,变为:total += sprintf( FILE_DATA_BUF + total, " ********************************* ",CH375vFileSize ); 和 total += sprintf( FILE_DATA_BUF + total, "这次的ADC数据到此结束,程序即将退出\xd\xa",CH375vFileSize );编译可以通过,不再提示错误,但是,程序运行完成之后,并没有将新加的字符串添加到原文件数据的末尾! 请问是何原因?那两行 sprintf 函数应该如何修改?