#include <stdio.h>
#include <string.h> 已经添加了string.h,可是没有添加进去
#define MAXLINES 5000
char *lineptr[MAXLINES];
int readlines(char *lineptr[],int nlines);
void writelines(char *lineptr[],int nlines);
void qsort(char *lineptr[],int left,int right);
main()
{
int nlines;
if((nlines = readlines(lineptr,MAXLINES)) >= 0)
{
qsort(lineptr,0,nlines-1);
writelines(lineptr,nlines);
return 0;
}
else
{
printf("error:input too big to sort");
return 1;
}
}
#define MAXLEN 1000
int getline(char *,int);
char *alloc(int);
int readlines(char *lineptr[],int maxlines)
{
int len,nlines;
char *p,line[MAXLEN];
nlines = 0;
while((len = getline(line,MAXLEN)) > 0)
if(nlines >= maxlines || (p=alloc(len)) == NULL)
return -1;
else
{
line[len-1] ='\0';
strcpy(p,line);
lineptr[nlines++] = p;
}
return nlines;
}
void writelines(char *lineptr[],int nlines)
{
int i;
for(i = 0; i < nlines; i++)
printf("%s\n",lineptr[i]);
}
程序是书上的,应该没问题,用的VC++6.0,sqort,alloc和getline都提醒错了
qsort和alloc等函数在stdlib.h里。
标准C里没有getline这个函数。
C++里的getline函数明显和你那个声明是不同的。
Linux有getline函数,声明也和你的不同。
我觉得你的程序应该自己实现getline函数,看看书里有没有那个函数的代码。