unresolved external symbol "void __cdecl qsort

#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都提醒错了

阅读 2.4k
2 个回答

qsort和alloc等函数在stdlib.h里。
标准C里没有getline这个函数。
C++里的getline函数明显和你那个声明是不同的。
Linux有getline函数,声明也和你的不同。
我觉得你的程序应该自己实现getline函数,看看书里有没有那个函数的代码。

请用man看一下各个函数都需要什么头文件及函数原型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进