#include <stdio.h>
#define BUFSIZE 10000
int main ( int argc, char *argv[] )
{
char *str;
FILE *stream = fopen( *++argv, "r" );
getvar( stream, str );
while ( *str )
putchar( *str++ );
return 0;
}
int getvar( FILE *istream, char *pvar )
{
static int a;
static int b = '\n';
static char *parr, arr[BUFSIZE];
pvar = parr = arr;
while (( *parr = fgetc(istream) ) != EOF )
{
if ( b == '\n' && a == '=' )
b = *parr;
if ( *parr == '\n' && a == b )
break;
a = *parr;
parr++;
}
return 0;
}
Почему конструкция while ( *str ) putchar( *str++ ) выводит чёрт знает что, а конструкция while ( *pvar ) putchar( *pvar++ ) помещённая в getvar выводит то что прочитано из файла?