stdin有些不明白的问题
1 #include<stdio.h> 2 #include<stdlib.h>
3 #include<string>
4 #define LEN_MAX 512
5 #define NLINE_MAX 1000
6 char *linePtr[NLINES_MAX];
7
8 /******* 比较函数,共qsort调用,返回值必须是int类型。自变量 *P1与*P2分别是被排序的两个指针。**/
9 int qcompare (const void *p1,const void *p2)
10 { return strcmp(*(char**)p1,*char(**)p2);
11 }
12
13 /***iiread date from stdin standard date flow function**/
14 char *getline()
15 {
16 char buffer[LEN_MAX],*linePtr =NULL;
17 if(fgets(buffer,LEN_MAX,stdin) != NULL)
18 {
19 size_t len = strlen (buffer);
20 if( buffer[len-1] == '\n')
21 buffer[len-1]= '\0';
22 else 23 ++len;
24 if((linePtr =malloc(len))!=NULL)
25 strcpy(linePtr,buffer);
26 }
27 return linePtr;
28 }
29 int main(void)
30 {int n=0;//读取多少行
31 for( ; n<NLINES_MAX && (linePtr[n] = getline())!=NULL;++n);
32 if(!feof(stdin))//deal with wrong,come acoss the end of file
33 {
34 if(n==NLINES_MAX)
35 fputs("sorttext:too many lines.\n",stderr);
36 else
37 fputs("sorttext:error reading from stdin.\n"stderr);
38 else //sort and putout to screen
39 {
40 qsort( linePtr,n,sizeof(char*),qcompare);
41 for(char **p = linePtr;p<line+n;++p)
42 puts(*p);
43 }
44
45 }
46 return 0;
47 }
为什么运行之后提示找不到文件?程序中没有输入,这不是我的程序 stdin。 第17行 if(fgets(buffer,LEN_MAX,stdin) != NULL) 这个语句,从stdin中读字符。可是stdin中没东西吧?
这是C语言核心技术上的一个例程 ,妹的研究一天了。着急死了