问题列表 - 第30933页

增量后运算符:意外行为

可能重复:
任何人都可以解释这些未定义的行为(i = i ++ + ++ i,i = i ++等...)

我的代码如下:

#include <stdio.h>
int main()
{
  int x = 10, y = 0;
  x = x++;
  printf("x: %d\n", x);
  y = x++;
  printf("y: %d\n", y);
}
Run Code Online (Sandbox Code Playgroud)

考虑到后增量的性质,我希望得到以下结果:

x: 10
y: 10
Run Code Online (Sandbox Code Playgroud)

我的理由是,在第5行,x应该在增量发生后分配给它的初始值.

相反,我得到了这个:

x: 11
y: 11
Run Code Online (Sandbox Code Playgroud)

深入到装配中,这对我来说是一个刻意的选择:

LCFI2:
        movl    $10, -4(%rbp)   // this is x
        movl    $0, -8(%rbp)    // this is y
        incl    -4(%rbp)        // x is simply incremented
        movl    -4(%rbp), %esi
        leaq    LC0(%rip), %rdi
        movl …
Run Code Online (Sandbox Code Playgroud)

c gcc post-increment

8
推荐指数
1
解决办法
1770
查看次数

为什么不检入AssemblyInfo.cs

我正在观看关于Git的视频,这个人不顾一切地忽略了AssemblyInfo.cs.我为什么不检查该文件?如果我不检查文件,当Visual Studio检查我的代码时,Visual Studio是否会抱怨下一个用户?

c# git assemblyinfo visual-studio

11
推荐指数
2
解决办法
4167
查看次数

从路径中提取文件名

我需要从文件路径字符串中获取文件名.例如,从这个字符串\abc\def\filename.txt我需要得到filename.txt

尝试使用regexp执行此操作:

$filepath="abc\filename.txt";
$filename = preg_replace("/.+\\/","",$filepath);
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误.我应该使用什么正则表达式来解决这个问题?

php regex

12
推荐指数
2
解决办法
3万
查看次数

我使用spring/hibernate的mysql驱动程序是什么?

有点困惑,是'driverclassname'和'hibernate.dialect'都指的是mysql驱动程序?

我该怎么用?connectorJ是我应该使用的吗?

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
        <property name="url" value="jdbc:mysql://localhost/blah"/>



<property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQLDialect
Run Code Online (Sandbox Code Playgroud)

我正在使用Maven,所以如果我能从maven那里获得理想的驱动程序.

在tomcat中运行我的应用程序我收到错误:

Cannot create JDBC driver of class 'org.hsqldb.jdbcDriver' for connect URL 
Run Code Online (Sandbox Code Playgroud)

java mysql spring hibernate

5
推荐指数
1
解决办法
3万
查看次数

使用Lambdas从字符串表达式构建可执行函数

我正在使用python,我想要一个函数,它接受一个包含一个变量(x)的数学表达式的字符串,并返回一个使用lambdas计算该表达式的函数.语法应该是这样的:

f = f_of_x("sin(pi*x)/(1+x**2)")
print f(0.5)
0.8
Run Code Online (Sandbox Code Playgroud)

语法应该允许()以及[]并使用标准运算符优先级.Trig函数的优先级应低于乘法且高于加法.因此,字符串'sin 2x + 1'将等同于sin(2x)+1,尽管两者都是有效的.这是用于评估代数和三角表达式的用户输入,因此认为数学语法不是编程语法.支持的函数列表应该易于扩展,代码应该清晰易懂.可以不折叠常量表达式.

此处的示例函数不完整.它采用表示表达式的嵌套列表并生成适当的函数.虽然有点容易理解,但即使对于python来说这看起来也很难看.

import math

def f_of_x(op):
    if (isinstance((op[0]), (int, long, float, complex)) ):
        return (lambda x:op[0])
    elif op[0]=="pi": return lambda x: 3.14159265358979
    elif op[0]=="e": return lambda x: 2.718281828459
    elif op[0]=="x": return lambda x: x
    elif op[0]=="sin": return lambda x: math.sin(f_of_x(op[1])(x))
    elif op[0]=="cos": return lambda x: math.cos(f_of_x(op[1])(x))
    elif op[0]=="tan": return lambda x: math.tan(f_of_x(op[1])(x))
    elif op[0]=="sqrt": return lambda x: math.sqrt(f_of_x(op[1])(x))
    elif op[0]=="+": return lambda x: (f_of_x(op[1])(x))+(f_of_x(op[2])(x))
    elif op[0]=="-": return lambda x: (f_of_x(op[1])(x))-(f_of_x(op[2])(x)) …
Run Code Online (Sandbox Code Playgroud)

python math lambda parsing

1
推荐指数
1
解决办法
2317
查看次数

在控制器方法中将上传的文件读入File对象 - "无法将Tempfile转换为String"

所以我试图实现文件上传功能,当用户上传文件时,我可以将其读入File对象并相应地处理它:

def create
  name = params[:upload]['datafile'].original_filename
  directory = "public/data"

   # create the file path
   path = File.join(directory, name)

   # read the file
      File.open(params[:upload][:datafile], 'rb') { | file |
         # do something to the file  
    }    
end
Run Code Online (Sandbox Code Playgroud)

当我尝试读取文件时,它会在File.open上抛出"无法将Tempfile转换为字符串"的错误.

我错过了什么?

ruby file-upload ruby-on-rails file

2
推荐指数
1
解决办法
6182
查看次数

tcl:捕获"exec diff"的输出,返回非零值

我知道在执行可能返回非零的命令时使用catch很常见......但是在这种情况下如何获得输出?

具体来说,我希望做一些像"catch {exec diff fileA fileB} ret"这样的事情.文件是不同的,ret值是1.我实际需要的是diff的输出,详细的差异.但我相信"捕捉{exec ...}错误"的做法并没有提供它,对吗?

有人可以建议这个任务吗?是否有tcl-builtin命令来做文件差异?(我认为可以将输出重定向到文件,然后读取文件......还有其他选择吗?)

谢谢!XM

diff tcl try-catch exec

2
推荐指数
1
解决办法
5719
查看次数

MySQL - 在现有表中大写每个单词的首字母

我有一个现有的表'people_table',带有一个字段full_name.

许多记录的"full_name"字段填充了错误的大小写.例如'fred Jones''fred jones''Fred jones'.

我可以找到这些错误的条目:

SELECT * FROM people_table WHERE full_name REGEXP BINARY '^[a-z]';
Run Code Online (Sandbox Code Playgroud)

如何将每个单词的第一个字母大写?例如'fred jones'成为'Fred Jones'.

mysql capitalization

26
推荐指数
4
解决办法
7万
查看次数

如何使窗口(osx)始终悬停在屏幕上方

我试图制作一个只有一个窗口的osx应用程序,它总是在屏幕的顶部.有谁知道如何实现它?谢谢.

macos objective-c osx-snow-leopard

14
推荐指数
1
解决办法
4253
查看次数

如何在 Hibernate 中创建临时表?

目标

  1. CREATE TEMPORARY TABLE在不使用本机 SQL 的情况下调用Hibernate 中的语句。这意味着仅使用 HQL 或 Hibernate API。
  2. 将对象保存到临时表。
  3. 调用一个使用现有表和临时表的存储过程。
  4. DROP完成后的临时表。(我知道没有必要,但我认为这样做是一个好习惯。)

背景

  1. 我对 SQL 非常熟悉,但对 Hibernate 不熟悉。
  2. 由于某人的决定,我被迫在项目中使用 Hibernate。
  3. 我要将 Web 表单保存到 Oracle 数据库。
  4. Web 表单包含一个充满文本字段(由其他人设计)的表格,每个单元格中都有一个。
  5. 当用户单击 时Save,值必须保存在单个事务中。
  6. Web 表单由数据库视图支持。
  7. 数据库视图是使用 EAV 模式从数据库表创建的。(这样做是因为列在某种程度上是动态的。)
  8. Web 表单中的每个文本字段都由数据库表中的一行建模。
  9. 显示 Web 表单使用SELECT视图上的语句。
  10. 更新 Web 表单使用UPDATE视图上的语句,它调用视图的INSTEAD OF触发器。
  11. 仅更新更改的值。每个更新都有一个审计跟踪。
  12. 如果其他用户在没有通知的情况下更新了任何值,则事务将回滚。以下是此类场景的示例:a(I)的值是4当用户显示 Web 表单时,(II)另一个用户将同一字段更新为5 (III)第一个用户更新该字段2并提交 Web 表单。

最初提出的解决方案

  1. 使用 AJAX (jQuery) 检测文本字段中的更改,并仅提交用户更改的内容。
  2. 但是,需要在数据库中检测其他用户所做的更改。 …

stored-procedures hibernate transactions temp-tables database-versioning

5
推荐指数
1
解决办法
1万
查看次数