小编The*_*kis的帖子

使用wsprintf将int转换为wchar_t*

我正在尝试wchar_t*使用intas作为参数进行格式化.我谷歌搜索了很多,但我只是更加困惑.所以,请考虑以下代码:

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

   wchar_t buf[16];
   wsprintf(buf, L"%d", 5);
   wprintf(L"[%ls]\n", buf);

   system("pause");
   return 0;

};
Run Code Online (Sandbox Code Playgroud)

假设wchar_t,wsprintf并且wprintf是广泛的字符等价物char,sprintf并且printf我预期上面打印[5],但它打印[和之间的垃圾].达到预期结果的正确方法是什么?我在这里误解了什么?

(我应该澄清一下,可移植性比安全性更重要,所以我想知道一个使用这一系列功能而不是更安全的特定于供应商的扩展的解决方案.)

c wchar-t

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

strtok不放弃换行符

所以我有一个带有一堆名字和数字的输入文件。我开始使用strtok分解字符串,以便可以从每个字符串中提取所有数据。一切似乎都正常运行,但是由于某种原因,它没有放弃换行符。

int procFile(PERSON **data, FILE* fpFile)
{
//  Local Declaration
char temp[1000];
char proc[15];
char *entry;
char *loc;
int success = 0;

//  Statement
if(fgets(temp, sizeof(temp), fpFile))
{
    (*data) = aloMem(); // free
    entry = temp;
    loc = strtok(entry, " ()-");
    strcpy(proc, loc);
    loc = strtok(NULL, " ()-");
    strcat(proc, loc);
    loc = strtok(NULL, " ()-");
    strcat(proc, loc);
    sscanf(proc, "%ld", &(*data)->phone);
    loc = strtok(NULL, "\0");
    strcpy((*data)->name, loc);
    success++;
    printf("%s1", (*data)->name);
}

return success;
}// procFile
Run Code Online (Sandbox Code Playgroud)

我尝试打印结果以查看其是否正常工作,这是我的输出。

Brown, Joanne
1South, Frankie
1Lee, …
Run Code Online (Sandbox Code Playgroud)

c

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

如何在C#中获取字符串的内存地址?

有人可以告诉我string在C#中获取a的内存地址的方法吗?例如,在:

string a = "qwer";
Run Code Online (Sandbox Code Playgroud)

我需要获取的内存地址a

c#

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

比较列表中的第一项和第二项

假设我正在用数字填充列表.每次我按下一个按钮,文本框中的数字都会被添加到列表中.

现在,我的问题是:如何比较添加的最新项目和添加的第二个最新项目?

提前致谢?

c# list winforms

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

C语言中的IF条件转换为MIPS

我想知道为什么 if(x == y)C编程语言被转换为 'bne'条件而不是MIPS中的'beq'条件?

c mips

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

在类中声明太多方法会使它变大吗?

我有一个C#类,我需要用它来实例化数百万个对象.所以我需要让课堂重量轻,速度超快.我在其中声明了一些功能.所以我担心的是,声明所有这些函数会使类慢或消耗更多内存.我也可以选择将这些函数声明为另一个类.这是班级:

internal class Var
{
    public dynamic data;
    public int index;
    public VarTypes type;
    public bool doClone = false;
    public Var Clone(bool doClone)
    {
        var tmpVar = Clone();
        tmpVar.doClone = doClone;
        return tmpVar;
    }
    public Var Clone()
    {
        if (doClone)
            return new Var() { data = data, index = index, type = type };
        else
            return this;
    }
    public void Clone(Var old)
    {
        this.data = old.data;
        this.index = old.index;
        this.type = old.type;
    }
    public override string ToString()
    {
        if (type …
Run Code Online (Sandbox Code Playgroud)

c# class function

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

为什么`*(multi + row)`生成指针地址而不是值?

为什么要*(multi + row)生成指针地址而不是值?我很困惑,但必须有一个很好的解释,但我不知道.

#include <stdio.h>
#define ROWS 5
#define COLS 10
int multi[ROWS][COLS];
int main(void)
{
    int row, col;
    for (row = 0; row < ROWS; row++)
    {
        for (col = 0; col < COLS; col++)
        {
            multi[row][col] = row*col;
        }

    }
    for (row = 0; row < ROWS; row++)
    {
        for (col = 0; col < COLS; col++)
        {
            printf("\n%d ",multi[row][col]);
            printf("%d ",*(*(multi + row) + col));
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers multidimensional-array

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

逐个字符地打印字符串

int main() {
    int i;
    char a[]={"Hello"};
    while(a!='\0') {
        printf("%c",*a);
        a++;
    }
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

字符串存储在连续的内存位置,并在将地址传递给printf()时应该打印字符.我已经开始学习C.我无法找到答案.请帮忙.

c

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

C#如何解决不同的扩展方法重载?

我有一个代码片段如下:

public static class M
{
    public static int Plus(this int i, int p=6)
    {
        return i + p;
    }
}
public static class N
{
    public static int Plus(this int i)
    {
        return i + 10;
    }
}
class Program
{
    static void Main()
    {
        int i = 3.Plus();
        Console.WriteLine(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

运行程序,输出"13",表示调用N类的扩展方法.为什么M类的方法不匹配?

然后,如果我删除N类,OK,调用类M的扩展方法,它会按预期输出"9".

所以我的问题是,是否有一个规则在C#或.net框架中确定,如果有多个匹配,将调用哪个扩展方法?这是否与重载解析规则或其他相关?

非常感谢.

c# overloading match

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

通用委托不能具有逆变返回类型

几天前,我开始阅读C#手册.直到今天,除了这一点之外,我已经理解了大部分介绍的概念:

delegate T TestDelegate<in T>();
Run Code Online (Sandbox Code Playgroud)

这行代码甚至没有编译,我知道这是因为返回类型不能逆变,我只是不明白为什么它不能这样.

c# generics delegates covariance variance

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