输入:1 2 3 4 5 6 7 8 9 10
如上的输入,并未告诉我们终止条件,这种无上限输入的格式可以用以下格式读入
int main() { int S[100]; int i = 0; while (scanf("%d", S + i)) { i++; } }
其中scanf改成cin也是一样的,原理就是OJ上的输入结束后scanf会返回EOF,EOF用来判断文件结束的标记(end of file)
而在OJ上的输入评判与输出都是通过文件来实现的,所以在读完所有数据后scanf会返回EOF代表结束的标志。但是在本地控制台不会如此,本地控制台会持续输入,除非ctrl+C强制结束程序或者输入了错误的数据,scanf就会停止
再具体可以看这篇文章从while(scanf() != EOF)说到ACM OnlineJuge的评判原理_czzshr的博客-CSDN博客
标签:OJ,int,scanf,格式,输入,EOF From: https://www.cnblogs.com/WKWKSL/p/17306881.html