从文件中读取字符串并使用 qsort 打印排序后的输出。所以我写了这样的东西:
int main()
{
int n=0;
int size=1;
File *fp = fopen(args[0],"r");
int c;
char* inputFile;
inputFile = char* malloc(size);
if(fp==0){
fprintf(stderr, "Cannot open file!\n");
return -1;
else{
do{
c = fgetc(fp);
if(size==1){
inputFile[n]=c;
}
else{
inputFile = char* realloc(inputFile, size+1);
inputFile[n]=c;
}
n++;
size++;
}while(c!=EOF);
qsort(inputFile, 1, size, compare);//I have implement the compare function correctly
n=0;
while(n<size){
while(input[n]!='\0'){
printf ("%d ",inputFile[n]);
n++;
}
n++;
}
return 0;
}
所以,如果输入文件是'\0vaaa\n\0ba\0\nabc',程序应该输出打印:
abc
ba
vaaa
但是,我的代码根本不起作用。我检查了比较方法是否返回正确的结果。另外,我只是想知道我是否正确实现了 malloc-realloc?谢谢