杭电OJ 1000
接受多种数据的方式:
1.while(~scanf("%d %d",&a,&b))
"~"可理解为重复,该代码的含义是反复执行scanf("%d %d",&a,&b)直到语句接收不到有效结果。
2.while(scanf("%d %d",&a,&b)!=EOF)
EOF 文件结束符(end of file),在while循环中以EOF作为文件结束标志,例用scanf函数读取数据,直到遇到文件结束。
以EOF作为文件结束标志的文件必须是文本文件。
文本文件:
每个字符由一个或多个字节组成,每个字节都是用的-128—127之间的部分数值来表示的,也就是说,-128——127之间还有一些数据没有对应任何字符的任何字节。如果一个文件中的每个字节的内容都是可以表示成字符的数据,我们就可以称这个文件为文本文件,可见,文本文件只是二进制文件中的一种特例,为了与文本文件相区别,人们又把除了文本文件以外的文件称为二进制文件,由于很难严格区分文本文件和二进制文件的概念,所以我们可以简单地认为,如果一个文件专门用于存储文本字符的数据,没有包含字符以外的其他数据,我们就称之为文本文件,除此之外的文件就是二进制文件。
另外:
对于while(1){}是无线接收循环 函数会一直不能正常结束,停滞等待下一个数据,如果遇到EOF也可能正常结束。