我对编码完全陌生,所以在评论之前请记住这一点。
所以一段时间以来我一直在尝试编码,今天我去图书馆取了一本书,叫做《c++编程》。我已经编写了一些基本程序,但我一直卡在某个点上,我不知道如何创建一个函数,以确保当提示用户输入双精度时,他们输入的内容是有效的。(如果用户输入像“k”这样的字符,程序就会中断)。我在这里和网上搜索,有一些答案,但它们更多的是“这是一行有效的代码,将 x、y、z 插入其中”。而且我没有足够的经验知道该怎么做。所以这是一个混合了另一个问题的代码的示例,我未能尝试使其在我的程序中工作:
#include <iostream>
#include <stdio.h>
using namespace std;
double GetDouble () {
double x;
cin >> x;
int valid = 0;
while (valid == 0) {
if (x == double) {
return x;
break;
} else if (x != double) {
cout << "Invalid Input! Please input a numerical value." << endl;
cin.clear();
while (cin.get() != '\n') ; // empty loop
}
}
return x;
}
现在我想要它做的是使用“cin << x”来获取用户对 x 的输入,然后确保 x 是双精度数,而我在这方面非常失败。如果有人能以澄清每个操作的方式解释这一点,我将不胜感激。例如,我不知道break函数是做什么的,cin.clear()和cin.get()是做什么的。(我知道这是重复的,但是另一个问题的答案根本没有解决我的困惑,感谢您花时间阅读和回答这个问题!:)