急啊,各位帮帮我!关于读文件的小问题
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 100
#define DATA_LEN 20
void main( void )
{
FILE *mPtrfile;
int i;
char mBlockBuffer[BUFFER_SIZE]; //memory chunk
char inputBuffer[BUFFER_SIZE];
memset(inputBuffer, '\0',BUFFER_SIZE);
char * dataBlock = inputBuffer;
if( (mPtrfile= fopen("a.txt", "rb")) != NULL )
{
int ret = fread(mBlockBuffer, DATA_LEN, 1, mPtrfile);
for(i=0; i<DATA_LEN; i++)
printf( "mBlockBuffer[%d]: %c\n" , i, mBlockBuffer[i]);
memcpy(dataBlock, mBlockBuffer,DATA_LEN);
for(i=0; i<DATA_LEN; i++)
printf( "dataBlock[%d]: %c\n" , i, dataBlock+i);
fclose( mPtrfile );
}
else
printf( "File could not be opened\n" );
}
文件a.txt中的内容是:97654321abc
我的问题是为什么两次打印的内容不一样啊?
结果是:
mBlockBuffer[0]: 9
mBlockBuffer[1]: 7
mBlockBuffer[2]: 6
mBlockBuffer[3]: 5
mBlockBuffer[4]: 4
mBlockBuffer[5]: 3
mBlockBuffer[6]: 2
mBlockBuffer[7]: 1
mBlockBuffer[8]: a
mBlockBuffer[9]: b
mBlockBuffer[10]: c
mBlockBuffer[11]: ?
mBlockBuffer[12]: ?
mBlockBuffer[13]: ?
mBlockBuffer[14]: ?
mBlockBuffer[15]: ?
mBlockBuffer[16]: ?
mBlockBuffer[17]: ?
mBlockBuffer[18]: ?
mBlockBuffer[19]: ?
dataBlock[0]: ?
dataBlock[1]: ?
dataBlock[2]: ?
dataBlock[3]: ?
dataBlock[4]: ?
dataBlock[5]: ?
dataBlock[6]: ?
dataBlock[7]: ?
dataBlock[8]: ?
dataBlock[9]: ?
dataBlock[10]: ?
dataBlock[11]: ?
dataBlock[12]: ?
dataBlock[13]: ?
dataBlock[14]: ?
dataBlock[15]: ?
dataBlock[16]: ?
dataBlock[17]: ?
dataBlock[18]: ?
dataBlock[19]: ?
Press any key to continue