[ create a new paste ] login | about

Link: http://codepad.org/pTl3CQVM    [ raw code | output | fork ]

C, pasted on Jan 16:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LINE_SIZE 300
#define MAX_LINES 100
#define YES 1
#define NO 0

void sort(int);
int read_line(FILE *);
void write_line(FILE *,int);
int mycomp(const char *,const char *);
void usage(void);
void cant(char *);

char line[MAX_LINES][LINE_SIZE];
int r_flag=NO;

main(int argc,char **argv)
{
FILE *fp;
char *s;
int n;

while(--argc>0&& **++argv=='-'){
for (s=*argv+1;*s!='\0';s++){
switch(*s){
case'r':
r_flag=YES;
break;
default:
usage();
}
}
}

n=0;
if(argc==0){
n=read_line(stdin);
sort(n);
write_line(stdout,n);
}
else{
while(argc--){
if((fp=fopen(*argv,"r"))==NULL)
cant(*argv);
n+=read_line(fp);
fclose(fp);
argv++;
}
sort(n);
write_line(stdout,n);
}
return(0);
}


int read_line(FILE *fp)
{
char tmp[LINE_SIZE];
int n;

for (n=0;fgets(tmp,LINE_SIZE,fp)!=NULL;n++){
if(n<MAX_LINES)
strcpy(line[n],tmp);
else{
fptintf(stderr,"too much line\n");
exit(1);
}
}
return(n);
}

void write_line(FILE *fp,int n)
{
int i;

for(i=0;i<n;i++)
fputs(line[i],fp);
}

void sort(int n)
{
qsort(line,n,LINE_SIZE,mycomp);
}

int mycomp(const char *a,const char *b)
{
if (r_flag==NO)
return(strcmp(a,b));
else
return(strcmp(b,a));
}

void usage(void)
{
fprintf(stderr,"Usage:sort2[file...]\n");
exit(1);
}


Output:
1
2
3
4
In function `read_line':
undefined reference to `fptintf'
In function `main':
undefined reference to `cant'


Create a new paste based on this one


Comments: