我正在创建一个简短的数据库应用程序,人们可以将变量分配给某些东西。
喜欢
cout << "Enter song ID#":
cin >> x;
但我想提示用户是否已在x
中存储了值。有没有办法辨别最初存储在x
中的垃圾值和其他值?
这样我可以做类似
的事情cout << "Enter song ID#":
cin >> x;
if (isUsed(x))
cout << "Do you want to overwrite this value?";
修改 x实际上是一个动态数组,所以我无法初始化它。或者我可以吗?
答案 0 :(得分:2)
您必须初始化 x
以保留用户无法生成的某些可识别值,或者使用在第一次x
设置时翻转的布尔变量(然后检查该变量用于确定您的值是否有意义。)
答案 1 :(得分:2)
答案 2 :(得分:1)
如果您能够偏离标准,则可以决定使用boost::optional。
答案 3 :(得分:0)
没有。您所能做的就是使用另一个变量作为标记来跟踪是否已为其分配值。
答案 4 :(得分:0)
除非您知道先验您的程序会在x
中存储哪种值,否则无法分辨。当然,垃圾总是有可能随机进入可接受的范围。
但你不需要忍受垃圾。将x
初始化为某个可以向您发出“未使用”信号的已知值。
答案 5 :(得分:0)
您无法辨别最初存储在x和其他值中的垃圾值。但是你可以用这样的方式编写你的程序,以确保当你读取变量的值时,变量被初始化或分配一些值。
答案 6 :(得分:0)
初始化x
..
说,
int x = -1000;
现在每次检查该值-1000
。
当然,使用x
初始化的值应该是用户不可能的值..