小编Lun*_*din的帖子

Backbone不会绑定表单提交

我的超级简单的主干应用程序没有提取表单提交并采取行动.我有这个应用程序坐在铁轨上,只是吐出JSON.

我的应用程序试图重新创建James Yu的CloudEditJérômeGravel -Niquet的Todo应用程序.我只是在创建新的Song对象时遇到问题.当主干应该处理表单数据并将其添加到有序列表时,Rails会选择POST并使用JSON和HTML进行响应.我正在使用ICanHaz Gem for JS Templates.

有任何想法吗?

//主应用程序视图

window.AppView = Backbone.View.extend({

  el: $("#songs_app"),

  events: {
    "submit form#new_song": "createSong"
  },

  initialize: function(){
    _.bindAll(this, 'addOne', 'addAll');

    Songs.bind('add', this.addOne);
    Songs.bind('reset', this.addAll);
    Songs.bind('all', this.render);

    Songs.fetch(); //This Gets the Model from the Server
  },

  addOne: function(song) {
    var view = new SongView({model: song});
    this.$("#song_list").append(view.render().el);
  },

  addAll: function(){
    Songs.each(this.addOne);
  },

  newAttributes: function(event) {
    var new_song_form = $(event.currentTarget).serializeObject();
    //alert (JSON.stringify(new_dog_form));
    return { song: {
        title: new_song_form["song[title]"],
        artist: new_song_form["song[artist]"]
      }}
  },

  createSong: …
Run Code Online (Sandbox Code Playgroud)

json backbone.js ruby-on-rails-3

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

printf,如何为整数插入小数点

我有一个UINT16无符号整数

4455, 312, 560 or 70.
Run Code Online (Sandbox Code Playgroud)

如何使用printf在最后两位数之前插入一个小数点,以便示例数字显示为

44.55, 3.12, 5.60 or 0.70
Run Code Online (Sandbox Code Playgroud)

如果没有printf解决方案,还有其他解决方案吗?

我不想使用浮点数.

c printf

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

在C中使用标准函数名称

我正在编写一个名为nauty的程序.该程序使用规范函数名称getline,它也是标准GNU C库的一部分.

是否有可能在编译时告诉GCC使用这个程序定义的函数?

c gcc standard-library

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

你能不能假设类型转换指针是安全的?

我从很多人那里听说你不能保证类型转换会无损.只有在您不了解处理器时才会这样,也就是说,您还没有验证用于数据类型的字节数?让我举个例子:

如果执行以下操作:

typedef struct
{
    int i;
    char c;
    float f;
    double d;
} structure;

size_t voidPtrSz = sizeof(void *);
size_t charPtrSz = sizeof(char *);
size_t intPtrSz = sizeof(char *);
size_t floatPtrSz = sizeof(float *);
size_t doublePtrSz = sizeof(double *);
size_t structPtrSz = sizeof(structure *);
size_t funcPtrSz = sizeof(int (*)(float, char));

printf("%lu\n", voidPtrSz);
printf("%lu\n", charPtrSz);
printf("%lu\n", intPtrSz);
printf("%lu\n", floatPtrSz);
printf("%lu\n", doublePtrSz);
printf("%lu\n", structPtrSz);
printf("%lu\n", funcPtrSz);
Run Code Online (Sandbox Code Playgroud)

......输出如下......

4
4
4
4
4
4
4
Run Code Online (Sandbox Code Playgroud)

您能否假设在所有情况下都可以安全地将特定数据类型指针类型转换为另一个数据类型指针?例如,如果您执行此操作:

int foo(float, char)
{
}

void …
Run Code Online (Sandbox Code Playgroud)

c pointers casting function sizeof

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

UnicodeString兼容性问题

我正在将一个较旧的项目从C++ Builder 2009移植到XE5.在旧项目中,Unicode字符串的编译器选项设置为" _TCHAR映射到:char".这在旧项目中运行良好.

移植时,我在XE5中设置了相同的编译器选项.但我仍然得到这样的代码编译器错误:

std::string str = String(some_component.Text).t_str();
Run Code Online (Sandbox Code Playgroud)

这会出现以下错误:

[bcc32 Warning] file.cpp(89):W8111访问不推荐使用的实体'UnicodeString :: t_str()const'

[bcc32错误] file.cpp(89):E2285无法找到'operator string :: =(wchar_t*)'的匹配项

显然XE5已经决定String::t_str()应该给我一个wchar_t*而不是一个char*,即使我已经设置了如上所述的编译器选项.

我该如何解决这个问题?

我很清楚C++ Builder已经采取了内部使用Unicode的步骤(即使在2009版本中),但这是一个200k LOC的旧项目.将其更新为Unicode将是一项非常低优先级的陡峭任务.

编辑

我可以通过更改代码来使其工作

std::string str = AnsiString(some_component.Text).c_str();
Run Code Online (Sandbox Code Playgroud)

但这意味着我必须在很多地方更改代码.有没有更好的方法不涉及重写代码?

c++ unicode vcl c++builder

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

鉴于此代码段,输出CPU是否依赖?

void main() {

        if(-1 > 0U)
                printf("True\n");
        else
                printf("False\n");
}
Run Code Online (Sandbox Code Playgroud)

它是依赖于处理器的(大端/小端)吗?

c

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

我们在嵌入式c或嵌入式c ++中有'@'运算符吗?如果是,请解释下面的代码?

码:

static volatile unsigned char   TMR0    @ 0x01;

static volatile unsigned char   PORTA   @ 0x05;

static volatile unsigned char   PORTB   @ 0x06;

static volatile unsigned char   PORTC   @ 0x07;
Run Code Online (Sandbox Code Playgroud)

此代码来自PIC16F877A的HT-PICC编译器pic.h库文件

我理解静态volatile和其他关键字的含义.这里Timer0的寄存器地址是0x01,但为什么它们@在它前面使用呢?它与指针有关吗?

c embedded pic hi-tech-c

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

哪一个更安全?"== TRUE"或"!= FALSE"

将布尔类型变量与以下内容进行比较是否更好:

  1. == FALSE!= FALSE; 要么
  2. == TRUE!= TRUE

c boolean

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

为什么会出现“从不兼容类型'void *'“分配给'int *'错误?

我在codeacademy上学习c,并且从不兼容的类型“ void *”错误中分配了“ int *”。我的文件是一个.c文件,其中包括stdlib.h。我不理解该错误,似乎更正使用了相同的代码行。

我正在尝试使用malloc创建一个数组。

我试图找到其他主题的答案。看来malloc并不是做到这一点的最佳方法,但我想找到一种使它起作用的方法。

我在Mac上,我使用emacs进行编码和gcc进行编译。

这是我的代码的一部分:

int main(int argc, char *argv[])
{
  char mot_secret[] = "PISCINE";
  int nombre_lettres = strlen(mot_secret);
  int *pnombre_lettres = &nombre_lettres;
  int *decouverte = NULL;
  int compteur = 10;

  decouverte = malloc(nombre_lettres * sizeof(int));
  if (decouverte == NULL)
    {
      exit(0);
    }

Run Code Online (Sandbox Code Playgroud)

这是解决方案:(我尝试翻译一些变量)

int main(int argc, char* argv[])
{
    char lettre = 0;
    char secretword[100] = {0};
    int *lettreTrouvee = NULL; 
    long coupsRestants = 10; // Compteur de coups restants (0 …
Run Code Online (Sandbox Code Playgroud)

c gcc

4
推荐指数
2
解决办法
121
查看次数

定义的宏'__CCP_H__'保留给编译器[MISRA 2012规则21.1,必需]

我对此Misra警告有两个用例,如下所述。编译器是否为#if定义保留了某些名称或特定名称而不能使用?

目前,我已禁用此警告,//lint !e9071但是我们真的需要对此类警告采取任何措施吗?如果我们禁用此类警告,将会有任何影响或风险吗?

情况1:

#ifndef __CCPPAR_H__
#define __CCPPAR_H__    //lint !e9071


#include "Ccp_Cfg.h"

#endif /* multiple inclusion protection - __CCPPAR_H__ */
Run Code Online (Sandbox Code Playgroud)

观察到的警告:

defined macro '__CCPPAR_H__' is reserved to the compiler [MISRA 2012
Rule 21.1, required]
Run Code Online (Sandbox Code Playgroud)

情况2:

#ifndef __CCP_H__
#define __CCP_H__    //lint !e9071

#include "Ccppar.h"

#define MAJOR   0x02
#define MINOR   0x01

/* other parts of code */ 

#endif
Run Code Online (Sandbox Code Playgroud)

观察到以下Misra警告:

defined macro '__CCP_H__' is reserved to the compiler [MISRA 2012
Rule 21.1, required]
Run Code Online (Sandbox Code Playgroud)

c misra

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