我在这个论坛上提出一个SPOJ问题可能是错的,但我想了解一个我想从这里丰富的社区中了解到的机制。
你的程序是使用蛮力方法来找到生命,宇宙和万物的答案。更确切地说......从输入到输出重写小数字。读取数字42后停止处理输入。输入的所有数字都是一位或两位数的整数。
实施例
输入: 1 2 88 42 99
输出: 1 2 88
#include <iostream>
using namespace std;
int main()
{
int n,i=0;
int a[100] = {0};
while((cin>>n))
{
a[i] = n;
i++;
continue;
}
for(int j = 0;a[j]!=42;j++)
cout<<a[j]<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int n;
while(true)
{
cin>>n;
if(n == 42)
break;
cout<<n<<endl;
}
return 0;
}
我的查询是在良好的解决方案中输入会发生什么?我们将只运行循环,直到数字不是42.好的解决方案如何处理剩余的输入?我得到一些暗示它与缓冲有些关联和所有。请向我提供一些解释或链接或学习材料或至少一些关键词谷歌等,以明确这一点。
答案 0 :(得分:0)
良好解决方案中的剩余输入将被“良好解决方案”忽略。
如果您需要更多信息,请阅读:
对象
<强> std::cin 强>
extern istream cin;
标准输入流 类istream的对象,表示面向窄字符(char类型)的标准输入流。它对应于C stream stdin。
标准输入流是由环境确定的字符源。通常假设它是从外部源输入的,例如键盘或文件。
对象 的 stdin 强> FILE * stdin;
标准输入流 标准输入流是应用程序的默认数据源。在大多数系统中,它通常默认指向键盘。
stdin可以用作任何需要输入流(FILE *)作为其参数之一的函数的参数,如fgets或fscanf。