Ошибка в программе на C.
Помогите пожалуйста найти ошибку в программе которая должна пронумеровывать каждую строку файла, сама программа:
#include
#define MAXL_STR 1000
short eof_check( FILE * file ) /* Проверяет конец файла */
{
signed char c;
fpos_t posInFile;
fgetpos( file, &posInFile );
c = getc( file );
fsetpos( file, &posInFile );
return ( c == EOF ) ? 0 : 1;
}
short str_num( FILE * fp )
{
int i;
fpos_t pos_p;
char * arrs;
arrs = ( char * ) calloc( MAXL_STR, sizeof( char ) );
i = 0;
rewind( fp );
while ( eof_check( fp ) )
{
fgetpos( fp, &pos_p );
fgets( arrs, MAXL_STR, fp );
printf( "%d%s", i, arrs );
fsetpos( fp, &pos_p );
if ( arrs[0] == ' ' || arrs[0] == '\t' )
fprintf( fp, "%d%s", i, arrs );
else
fprintf( fp, "%d %s", i, arrs );
free( arrs );
arrs = ( char * ) calloc( MAXL_STR, sizeof( char ) );
++i;
}
}
int main( void )
{
FILE * fpath;
fpath = fopen( "search_str.c", "r+" );
str_num( fpath );
return 0;
}
В программе есть одна неувязочка: она стирает несколько начальных символов у всех строк кроме последней. Помогите пожалуйста.
Ошибка в str_num.