小编Ben*_*oit的帖子

C#语言设计的支柱

文章(http://www.artima.com/intv/nonvirtualP.html)中,Anders Hejlsberg提到版本控制是C#语言设计的支柱之一.有谁知道其他支柱是什么?

c# language-design

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

在C编程中需要有关malloc的帮助.它分配的空间比预期的多

让我先说一下,我是一个新手,我在学校的入门级C班.

我正在编写一个程序,要求我使用malloc和malloc在所有情况下分配8倍我期望的空间.即使只是对malloc(1),它是分配8个字节而不是1,我很困惑为什么.

这是我测试过的代码.这应该只允许输入一个字符加上转义字符.相反,我可以输入8,所以它是分配8 bytes而不是1,即使我只使用一个整数,也是如此malloc().请忽略该x变量,它在实际程序中使用,但不在此测试中.:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main (int argc ,char* argv[]){

    int x = 0;
    char *A = NULL;
    A=(char*)malloc(sizeof(char)+1);
    scanf("%s",A);
    printf("%s", A);
    free(A);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c malloc

4
推荐指数
3
解决办法
3797
查看次数

从现有项目文件创建 Fossil 存储库

我希望在初学者的快速入门指南中对此进行解释,因为几乎每个从化石开始的人都会有他想要开始用化石管理的项目。但我在文档中找不到任何解释。

(我来自 git,这对于我的需求来说太重了,但至少在现有文件夹中创建一个新的存储库很容易......)

(试图回答我的问题,但声誉不足。所以这里是:)

我想我自己已经弄清楚了。对于初学者来说,这就是我所做的:

  1. 为存储库创建目录,C:\www\fossil
  2. 输入fossil目录
  3. fossil init projectname
  4. 输入现有项目的目录C:\www\projectname
  5. fossil open ../fossil/projectname
  6. fossil add *.*

dvcs fossil

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

Oracle 相当于 SQLite 的 quote() 函数

有时我想INSERT从数据库表的内容生成语句。

使用 SQLite,我可以做到:

SELECT 'INSERT INTO foo (col1, col2) VALUES (' || quote(col1) || ',' || quote(col2) || ');'
  FROM bar;
Run Code Online (Sandbox Code Playgroud)

使用 Oracle,我必须这样做:

SELECT 'INSERT INTO foo (col1, col2) VALUES (''' || replace(col1, '''', '''''') || ''',''' || replace(col2, '''', '''''') || ''');'
  FROM bar;
Run Code Online (Sandbox Code Playgroud)

此外,它不适用于 NULL 值。

有没有更好的办法?

sqlite oracle query-optimization

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

wchar_t在visual studio中是2个字节,存储UTF-16.Unicode感知应用程序如何使用U + FFFF以上的字符?

我们正在计划让我们的应用程序识别Unicode,我们正在分析我们将遇到的问题.

特别是,我们的应用程序将严重依赖于字符串的长度,我们希望将其wchar_t用作基本字符类.

当处理必须以UTF-16中的2个16位单位存储的字符时出现问题,即U + 10000以上的字符.

简单的例子:

我有UTF-8字符串"蟂"(Unicode字符U + 87C2,UTF-8:E8 9F 82)

所以,我设置以下代码:

const unsigned char my_utf8_string[] = { 0xe8, 0x9f, 0x82, 0x00 };

// compute size of wchar_t buffer.
int nb_chars = ::MultiByteToWideChar(CP_UTF8,                                  // input is UTF8
                                     0,                                        // no flags
                                     reinterpret_cast<char *>(my_utf8_string), // input string (no worries about signedness)
                                     -1,                                       // input is zero-terminated
                                     NULL,                                     // no output this time
                                     0);                                       // need the necessary buffer size

// allocate
wchar_t *my_utf16_string = new wchar_t[nb_chars];

// convert
nb_chars …
Run Code Online (Sandbox Code Playgroud)

unicode wchar-t buffer-overflow visual-studio-2010 visual-c++

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

在声明变量之后,有没有办法证实变量?

可能重复:
在声明之后是否有一些忍者技巧使变量保持不变?

有时在C或C++中我们有一个可能是const的变量,但我们必须使用一些代码行来初始化它.

有没有办法告诉编译器,从函数的某个角度来看,一些已构造的变量必须被视为const,直到它的作用域结束?

就像是:

int c = 0;
// the value of c is initialized here
switch(someVar) {
   case foo: c = 3; break;
   case bar: c = 4; break;
   default : c = 42; // what else?
}
// now c is constant
ASSUME_CONST_FROM_NOW(c) // some #pragma maybe?
Run Code Online (Sandbox Code Playgroud)

我知道我可以在专用函数中初始化变量.这不是我要求的.

另一个例子:

int c = 0; int d = 0;
{ /*some block of code that initializes both c and d jointly*/ }
ASSUME_CONST_FROM_NOW(c, d)
Run Code Online (Sandbox Code Playgroud)

没有可以在不创建结构或类的情况下一次返回两个值的函数.

但是这样一个技巧可能是有用的,以便通过不太多的重构使旧的,糟糕的代码更容易理解.

c c++ const

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

帮助注册不在内部和内部联接

我有两张桌子.表1和表2

表格1

id tid
1  100
2  200
3  300
Run Code Online (Sandbox Code Playgroud)

表2

tid name
100 A
200 B
Run Code Online (Sandbox Code Playgroud)

我想从表1中取出记录的id,而不是表2中的tid.

我的输出应该是这样的.

Table1.id

3
Run Code Online (Sandbox Code Playgroud)

为此我写了以下查询但是花了太多时间.由于两个表都有更多的记录.

请帮助我如何编写查询,以便花费更少的时间.

select id from Table1 where tid not in (select tid from Table2)
select a.id from Table1 a inner join Table2 b on a.tid<>b.tid
Run Code Online (Sandbox Code Playgroud)

TIA.

sql oracle

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

有没有一种有效的方法来避免SQL中固定值的UNION?

例如使用Oracle:我想要一些临时表用于Merge:

MERGE INTO my_target_table
USING (
        WITH tbl1 AS (       SELECT 'a'   col1 FROM dual            -- <--- THIS
                       UNION SELECT 'foo' col1 FROM dual            -- <--- IS
                       UNION SELECT 'doh' col1 FROM dual            -- <--- CRAPPY
                     ),
             tbl2 AS (       SELECT 'b'   col2, 'c' col3 FROM dual  -- <--- THIS
                       UNION SELECT 'x'   col2, 's' col3 FROM dual  -- <--- ALSO
                     )
        SELECT col1, col2, col3 FROM tbl1 CROSS JOIN tbl2
      ) my_source_view
   ON (     my_target_table.col1 = my_source_view.col1
        AND my_target_table.col2 …
Run Code Online (Sandbox Code Playgroud)

sql oracle coding-style

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

WinInet HttpQuery Info返回无效的状态代码

我正在研究一个程序,它需要在加载之前检查页面是否存在(所以没有太多异国情调).

一切正常,但我无法让HttpQueryInfo返回页面的有效状态代码.返回的状态代码是:1875378224

产生问题的代码:

DWORD headerBuffSize = sizeof(DWORD);
DWORD statusCode;
//Check existance of page (for 404 error)
if(!HttpQueryInfo(hRequestHandle,
                  HTTP_QUERY_STATUS_CODE,
                  &statusCode,
                  &headerBuffSize,
                  NULL))
    return 4;

if(statusCode == HTTP_STATUS_NOT_FOUND)
    cout << "We got a 404 error" << endl;

cout << "Got Status code: " << statusCode << endl; //1875378224 everywhere
cout << "404 status code: " << HTTP_STATUS_NOT_FOUND << endl; //What it should be getting
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做; 我已将自己的代码与在线的几个示例进行了比较,看起来它应该可以工作,尽管我可能只是犯了一个愚蠢的错误.

谢谢!

c++ http wininet

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

获取" - ("和") - "之间的字符串,linux目录

我在linux目录中有很多文件,带有一些目录的纯文本,我想搜索所有这些文件并获得" - ("和")之间的字符串 - "如:

bbbfb da bg - (fdsd) - fgfjmui - (juju gfdgf b) - fsdf sdfs dsfdlk,kwwk
xwpv - (64fsdfds) - fsdfsd - (a) - fsdfsd ...

并返回:

  • FDSD
  • juju gfdgf b
  • 64fsdfds
  • 一个 ...

我读了一段时间,我发现像grep这样的命令,但我尝试了,我认为该命令返回完全字符串,只是逐行:

grep -Rn "-(" *
Run Code Online (Sandbox Code Playgroud)

我也尝试过sed命令:

sed -e 's/.*-(\([^"]*\))-.*/\1/'
Run Code Online (Sandbox Code Playgroud)

返回所有的行,模式在哪里,只有里面的字符串 - (和) - ,但还不是很正确.

我读到了关于awk的问题,但我的问题是:有可能用grep,sed或awk吗?还有一些东西可以用于sed命令吗?(我对此有点新意见)还有另外一个命令吗?或者我想的另一个想法就是制作一个小c程序来读取char中的char文件

linux bash awk grep sed

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