while(cin>>i)是什么意思
时间: 2023-08-31 18:07:08 浏览: 68
"while(cin>>i)"是一个常见的C++语中的循环结构,用于从标准输入流(通常是键盘输入)读取数据,并将读取的数据存储到变量i中。循环结构会在每次成功读取数据并存储后执行一次循环体内的代码。当无法读取更多数据时,循环将终止。
换句话说,这个循环会一直运行,直到无法从输入流中读取到有效的数据为止。它适用于需要从用户输入中获取一系列值并进行处理的情况。
相关问题
while(cin>>*Blist[i++]) 有问题吗
这个代码看起来有一些问题。首先请注意,在 C++ 中,`cin` 只能用于输入基本数据类型(如整数、浮点数、字符等),而不能用于输入指针或者数组。所以,`cin>>*Blist[i]` 这个语句是非法的。
此外,在这个代码中,`Blist` 似乎是一个数组指针,但是数组指针是没有办法直接输入的。如果想要输入数组中的某个元素,可以使用下标来引用数组中的某个位置,例如:`cin>>Blist[i][j]`。
总的来说,如果想要输入数组中的某个元素,应该使用数组名加下标的形式来引用数组中的某个位置,然后使用 `cin` 进行输入。
最后,还有一个问题是 `while(cin>>*Blist[i])` 中的条件表达式。`cin>>*Blist[i]` 这个表达式的结果是一个输入流对象,而不是一个布尔值。如果想要使用 `cin` 在循环中输入数据,应该使用 `while(cin>>x)` 这样的形式,其中 `x` 是一个基本数据类型。
void DataInput() { cout<<"请输入最小物理块数:"; cin>>M; while(M > BlockNum) // 大于数据个数 { cout<<"物理块数超过预定值,请重新输入:"; cin>>M; } cout<<"请输入页面的个数:"; cin>>N; while(N > DataMax) // 大于数据个数 { cout<<"页面个数超过预定值,请重新输入:"; cin>>N; } cout<<"请输入页面访问序列:"<<endl; for(int i=0;i<N;i++) cin>>Data[i]; }代码意思
这段代码实现了一个数据输入函数DataInput(),其功能是从用户处获取输入的最小物理块数M、页面个数N和页面访问序列Data。其中,BlockNum和DataMax是预定的物理块数和页面个数上限。
具体实现时,首先提示用户输入最小物理块数M,如果M大于预定的物理块数BlockNum,则要求用户重新输入。然后提示用户输入页面个数N,如果N大于预定的页面个数上限DataMax,则要求用户重新输入。最后,提示用户输入页面访问序列,使用for循环逐个获取用户输入的页面访问序列。
需要注意的是,这段代码没有对用户输入的数据进行校验和错误处理,如果用户输入的数据不符合要求,程序可能会出现异常。同时,该函数也没有返回值,数据的存储方式也没有明确说明。因此,需要在该函数的调用处对数据进行进一步处理和检查。