我正在寻找清理我拥有的一些已经运行的代码。首先,这是一个赋值,并且赋值指定整数必须作为整数,双精度数作为双精度数等,否则我可能只是将输入作为双精度并强制转换为 int if(number%1==0)
。
我已将代码精简为仅处理输入(使用输出语句来验证它是否正常工作)。
int wholePart=0;
double decimalPart=0;
cout << "Input a number: ";
cin >> wholePart;
if(cin.peek() != '\n')
cin >> decimalPart;
cout << "wholePart = " << wholePart << endl << "decimalPart = " << decimalPart << endl;
现在......这按原样工作,并且在我添加代码以处理组合整数和小数(如果小数部分不为 0)之后,我已经完成了超出分配要求的工作,但我正在学习,我想尽可能地清理这段代码。
我可以用其他输入验证来包装整个输入部分,以确保用户实际上输入的是数字而不是字符。但我在这里主要担心的是这if(cin.peek() != '\n')
还不够好。也许if(cin.peek() == '.')
是一个更好的选择,但我很好奇什么是完成我在这里想要完成的事情的最佳方式。有任何想法吗?
并且请不要将其拒绝为“哦,这是家庭作业”。我想强调的是,我的课程已经超出了作业的额外学分部分所要求的范围。我只是想更多地了解该语言以及处理此类输入的最佳方式可能是什么。