#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLEN 1000
#define MAXLINES 5000
int getline(char *, int);
int readline(char *lineptr[], int maxlines);
void writeline(char *lineptr[], int nlines);
char *lineptr[MAXLINES];
int main(int argc, char *argv[])
{
int nlines;
if((nlines = readline(lineptr, MAXLINES)) >= 0)
{
writeline(lineptr, nlines);
return 0;
}
else
return -1;
}
#define MAXLEN 1000
int getline(char *, int);
int readline(char *lineptr[], int maxlines)
{
int len, nlines;
char *p, line[MAXLEN];
nlines = 0;
while((len = getline(line, MAXLEN)) > 0)
if(nlines >= maxlines || (p = malloc(len)) == NULL)
return -1;
else
{
line[len - 1] = '\0';
strcpy(p,line);
lineptr[nlines++] = p;
}
return nlines;
}
void writeline(char *lineptr[], int nlines)
{
int i;
for(i = 0; i < nlines; i++)
printf("%s\n", lineptr);
}
int getline(char s[], int lim)
{
int c, i;
for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
{
s = c;
}
if(c == '\n')
{
s[i++] = c;
}
s = '\0';
return i;
}
文章评论(0条评论)
登录后参与讨论