我有以下代码:
value Payment-method ::= credit-card : {
type cb,
number "01234567890123456789",
expiry-date "042018"}
输入:
private void OnMouseDrag(){
Vector3 newPos = mainCameraTransform.position;
newPos += mainCameraTransform.up * Input.GetAxis("Mouse Y");
newPos += mainCameraTransform.right * Input.GetAxis("Mouse X");
newPos = newPos.normalized * 10f;
mainCameraTransform.position = newPos;
mainCameraTransform.LookAt(Vector3.zero, mainCameraTransform.up);
}
它完美无缺。
但它也适用于下一个输入:
#include <stdio.h>
int main(int argc, char **argv) {
int arr[2];
arr[0] = 0;
arr[1] = 0;
int end = 0;
int i;
for (i=0; i<2 ; i++){
scanf(" num %d", &arr[i]);
}
scanf(" end %d", &end);
printf("arr0 %d \n", arr[0]);
printf("arr1 %d \n", arr[1]);
printf("end %d \n", end);
}
如何知道结束for循环并评估最后一次scanf?为什么它不会失败?
答案 0 :(得分:1)
scanf
在第二个例子中失败了。第二个循环迭代失败,返回0个项目,保持arr[1]
不变。然后循环结束,最后scanf
成功读取第二行输入。