一个函数,<C和指针>里面的,有点不明白
int read_column_numbers(int columns[],int max)
{
int num=0;
int ch;
while(num <max && scanf( "%d ",&columns[num])==1 && columns[num]> =0)
num+=1;
if(num%2 !=0){
puts( "last column number is not paired. ");
exit(EXIT_FAILURE);
}
while((ch=getchar())!=EOF && ch != '\n ')/*丢弃该行中包含最后一个数字的那部分内容*/
return num;
}
这个函数是输入偶数个数字,然后通过负数作为结束,不明白的是带有注释那句,不知道有什么作用,就算没有了他,返回值都是一样.
即使输入负数后再输入其他都好象不会对数组columns有什么影响啊.
[解决办法]
while((ch=getchar())!=EOF && ch != '\n ') ;
把输入缓冲区里多余的东西给清理掉~