我是第二个OOP课程,我的第一堂课是用C#教的,所以我是C++的新手,目前我正在使用cin练习输入验证.所以这是我的问题:
这个循环我构建了一个很好的验证输入的方法吗?或者有更常见/可接受的方式吗?
谢谢!
码:
int taxableIncome;
int error;
// input validation loop
do
{
error = 0;
cout << "Please enter in your taxable income: ";
cin >> taxableIncome;
if (cin.fail())
{
cout << "Please enter a valid integer" << endl;
error = 1;
cin.clear();
cin.ignore(80, '\n');
}
}while(error == 1);
Run Code Online (Sandbox Code Playgroud) 我需要一个函数来生成随机整数.(long现在假设Java 类型,但这将扩展到BigInteger或BitSet稍后.)
棘手的部分是有一个参数P,它指定结果中任何位的(独立)概率为1.
如果P = 0.5,那么我们可以使用标准随机数发生器.P的一些其他值也易于实现.这是一个不完整的例子:
Random random = new Random();
// ...
long nextLong(float p) {
if (p == 0.0f) return 0L;
else if (p == 1.0f) return -1L;
else if (p == 0.5f) return random.nextLong();
else if (p == 0.25f) return nextLong(0.5f) & nextLong(0.5f);
else if (p == 0.75f) return nextLong(0.5f) | nextLong(0.5f);
else if (p == 0.375f) return nextLong(0.5f) & nextLong(0.75f); // etc
else {
// What goes here??
String message …Run Code Online (Sandbox Code Playgroud) 我注意到有时候,C宏写得像这样:
#define foo(bar) ({ ++bar; })
Run Code Online (Sandbox Code Playgroud)
经过一些实验,我发现:
({});会编译,但什么都不做.(正如所料.);将导致语法错误.这样做的副作用是确保foo()看起来像代码中的函数.(虽然,如果你关闭分号,错误对诊断问题不是很有用!)return ({}); 抱怨虚假值不被忽略,就像我试图使用void函数一样.这只是为了让开发人员在他们的宏中添加分号,还是有另一个目的?我已经尝试过谷歌,但是标点符号失败了.这有名字吗?
jQuery如何处理子选择器或者我错过了一些明显的错误?当孩子不是什么时,我无法让它工作*.
这是我正在运行的jQuery选择器:
$("#myTable > tr").each(function() {
// do somthing }
);
Run Code Online (Sandbox Code Playgroud)
表结构是:
<table id="myTable">
<tr>
<td><button>someButton</button></td>
<td><textarea>...</textarea></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
没有元素与上面的选择器匹配#myTable > tr.但下面列出的两个选择器工作正常.
$("#myTable tr") // search all descendants for tr
Run Code Online (Sandbox Code Playgroud)
或使用通配符匹配孩子:
$("#myTable > *") // search all child elements
Run Code Online (Sandbox Code Playgroud)
关于这里可能出现什么问题的任何想法?
谢谢你的快速回答!不幸的是只能选择一个.
通常,对于给定对象,最好对单个查询与许多查询进行比较.假设我有一堆"儿子"物品,每个物品都有一个"父亲".我得到了所有'儿子'对象:
sons = Son.all()
Run Code Online (Sandbox Code Playgroud)
然后,我想让那群儿子的所有父亲.我做:
father_keys = {}
for son in sons:
father_keys.setdefault(son.father.key(), None)
Run Code Online (Sandbox Code Playgroud)
然后我可以这样做:
fathers = Father.get(father_keys.keys())
Run Code Online (Sandbox Code Playgroud)
现在,这假设son.father.key()实际上并没有获取对象.我错了吗?我有一堆代码假定object.related_object.key()实际上没有从数据存储区中获取related_object.
我这样做了吗?
我有一项活动,让用户选择一个电话号码.当然,我希望我的班级能够记住所选联系人的ID,所以我将其保存在课程领域.但是当onActivityResult方法返回时,我的类变量被重置.这是我正在尝试做的事情:
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
...
public void onActivityResult(int reqCode, int resultCode, Intent intent){
super.onActivityResult(reqCode, resultCode, intent);
switch(reqCode){
case(PICK_CONTACT):
if(resultCode == Activity.RESULT_OK){
Uri contactData = intent.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if(c.moveToFirst()){
contactName = c.getString(c.getColumnIndexOrThrow(People.NAME));
contactId = c.getInt(c.getColumnIndexOrThrow(People._ID));
break;
Run Code Online (Sandbox Code Playgroud)
当我在此方法中设置断点时,contactName和contactId的值正如我所期望的那样,但是一旦该方法返回,值就会以某种方式重置为其默认值.很明显我错过了一些东西,但我不确定我做错了什么或遗忘了.
谢谢!
伊娃
我想在codeigniter中使用活动记录更新一行,我只想增加一个字段值(received_qty = received_qty +1),我意识到我可以在通常的sql中做到这一点,但我不能在codeigniter活动记录中
$update['received_qty'] = 'received_qty + 1';
$update['received_date'] = date("Y-m-d");
$this->db->where($where);
$this->db->update('vrs_distribution', $update);
Run Code Online (Sandbox Code Playgroud)
有人知道如何使用活动记录吗?
我已经配置了iphone并让用户安装了应用程序.它失败.
是否有崩溃日志,我可以看到它在iphone上失败的原因?
伊恩
我最近在(可能是你)StackOverflow的帮助下编写了以下选择器
$(':submit[name="Delete"][value="Delete"]').click(function() {
return window.confirm(this.title || 'Delete this record?');
});
Run Code Online (Sandbox Code Playgroud)
问:现在已经发布了1.4,是否有更优雅的方式来编写选择器?
Java代码:
Transformer TRANSFORM_TO_INTEGER = new Transformer() {
public Object transform(Object input) {
Integer i = new Integer((String) input);
return i;
}
};
String begin = "1,2,3,4,5";
List strList = Arrays.asList(StringUtils.split(begin, ","));
CollectionUtils.transform(strList, TRANSFORM_TO_INTEGER);
Run Code Online (Sandbox Code Playgroud)
此代码将抛出ArrayStoreException:
java.lang.ArrayStoreException
at java.util.Arrays$ArrayList.set(Arrays.java:2360)
at java.util.AbstractList$ListItr.set(AbstractList.java:488)
at org.apache.commons.collections.CollectionUtils.transform(CollectionUtils.java:434)
Run Code Online (Sandbox Code Playgroud)
这是为什么?
java ×2
jquery ×2
activerecord ×1
android ×1
c ×1
c++ ×1
codeigniter ×1
collections ×1
crash ×1
gcc ×1
iphone ×1
logging ×1
loops ×1
macros ×1
optimization ×1
python ×1
random ×1
validation ×1