
Untitled
By: a guest on
Apr 25th, 2012 | syntax:
C++ | size: 1.33 KB | hits: 10 | expires: Never
#include <stdio.h>
#include <string.h>
#include <assert.h>
#define MAXLINES 1024
#define MAXLEN 2048
int read_lines (char ** lines,int nlines) {
char buffer [MAXLEN] ;
char * s = NULL ;
unsigned i = 0,j;
while (!feof (stdin) && i < nlines) {
memset (buffer,0,MAXLEN) ;
if (!fgets (buffer,MAXLEN,stdin)) // cia tiesiog getline i stdin gali nekreipt demesio
break ;
j = strlen (buffer) ;
s = malloc (j+1) ; // alokuojam atmintoies tiek kiek uzteks issaugot nuskaitytai eilutei
strcpy (s,buffer) ; // nukopujuoju nuskaityta eilute i alokuota atminti
lines [i] = s ; // priskiriu alokuotos atminties pointeri prie lines [i]
++i ;
}
return i ;
}
void print_lines (char ** lines,int nlines) {
int i ;
for (i = 0;i < nlines;++i) {
printf ("%s",lines [i]) ;
}
}
void free_lines (char ** lines,int nlines) {
int i ;
for (i = 0;i < nlines;++i) {
free (lines [i]) ; // islaisvinam alokuota atminti
}
}
int main () {
static char * lines [MAXLINES] ;
int nlines = 0 ;
nlines = read_lines (lines,MAXLINES) ;
print_lines (lines,nlines) ;
//free_lines (lines,nlines) ;
getchar () ;
return 0 ;
}