小编Mar*_*lon的帖子

"%3d"在printf语句中的含义是什么?

在这段代码中,符号的作用是%3d什么?我知道%表示引用变量.

这是代码:

#include <stdio.h>
int main(void)
{
    int t, i, num[3][4];
    for(t=0; t<3; ++t)
        for(i=0; i<4; ++i)
            num[t][i] = (t*4)+i+1;
    /* now print them out */
    for(t=0; t<3; ++t) {
        for(i=0; i<4; ++i)
            printf("%3d ", num[t][i]);
        printf("\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ printf

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

为什么for循环的条件可以留空?

可能重复:
for和while循环中没有循环条件

为什么for-loop允许的条件是空的?例如

for (;;)
Run Code Online (Sandbox Code Playgroud)

编译好.为什么这个空表达式会评估为true以下内容

if () {}
while () {}
Run Code Online (Sandbox Code Playgroud)

会失败吗?我想知道是否/为什么for-loop是一个例外.

c c++ for-loop

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

#include"../somefile.h"中的..是什么意思

是否意味着搜索somefile.h的上一个文件夹或somefile.h的项目文件夹?

c++ include c-preprocessor

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

传递size_t作为参数的"效率"

由于size_t可以是32位或64位,具体取决于当前系统,最好始终将size_t作为参考或const引用传递给函数,因此它总是4个字节?(如果它是8个字节你必须复制)我看过的很多开源代码都没有这样做,但是如果它们的编译器支持64位整数,那些64位整数总是作为引用传递.他们为什么不为size_t这样做呢?我想知道你的意见是什么.

c++ size-t

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

Main()上的ConditionalAttribute

这是一个出于好奇的问题.我正在搞乱一些代码,并意识到以下内容仍然在发布中编译:

class Program
{
    [Conditional("DEBUG")]
    private static void Main()
    {
        // do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为ConditionalAttribute应该消灭该方法,但事实并非如此.切入点有什么特别之处?

c#

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

正确处理文件流和二进制流以及处理文件流

实际上,我尝试了对代码进行防错并最终使其看起来非常混乱.

我有一个功能设置来读取某种类型的文件.我希望函数在出现问题时返回false,如果一切正常则返回true.我无法弄清楚如何构建一切.

我有一个尝试打开文件流的初始try-catch块.在那之后,我在读取过程中进行了一些其他检查,例如文件大小和某些偏移处的值.我设置的方式是使用if else语句.如:

if(condition){

}
else{
    MessageBox.Show("There was an error");
    br.Dispose();
    fs.Dispose();
    return false;
}
Run Code Online (Sandbox Code Playgroud)

... br是二进制阅读器,fs是文件流.像这样有很多块,这么多次写同样的东西似乎是不好的做法.首先想到的是将整个事物包装在try-catch语句中并抛出异常而不是使用if else块.我记得在阅读try-catch语句时,拥有它们是好事,但不要用它们包装所有内容.说实话,我仍然不完全理解为什么在try catch语句中包装所有内容都是不好的做法,因为它们只有在出现错误时才会生效,在这种情况下程序正在向南移动...

此外,我是否必须关闭二进制阅读器和文件流,或者关闭一个关闭另一个?有没有办法使用它们而不必处理它们?

c# error-handling program-flow

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

什么时候工厂合适?

取自维基百科:

在面向对象的计算机编程中,工厂是用于创建其他对象的对象.它是构造函数的抽象,可用于实现各种分配方案.

有人可以解释什么时候需要工厂级或有益吗?

我目前正在开发一个项目,我有一个类,并使用构造函数初始化一个对象(呃!),但它可能会失败,根本不会初始化.我有一个Success属性来检查它是否正确创建.这是一个应该实施工厂类的好例子吗?这样Create()方法可以返回null,我可以摆脱Success属性.我有正确的想法吗?

design-patterns factory-pattern

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

为什么我不能用c ++中的new调用参数化构造函数?

如果你知道这个问题,

假设我有一个其CTOR接收整数的A类;

我做不到以下事情:

A* arr = new A[3](A(2), A(3), A(5));
Run Code Online (Sandbox Code Playgroud)

或者任何其他方式来初始化数组的几个成员.我四处看看,这是不可能的.

我的问题是为什么,我为什么要这样做

A arr[3] = {A(1), A(2), A(3)};
Run Code Online (Sandbox Code Playgroud)

但我不能做到以上?记忆方面或其他什么.

非常感谢你!

c++ arrays dynamic-memory-allocation

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

C++代码问题

我对这段代码有些问题.我想显示... 12345 12345 12345

但我得到一个错误说...

错误1错误C3861:'displayOneRowOfDesign1':找不到标识符

有人可以帮忙吗?

// displays (on the screen) design1 
void displayDesign1 ()
{
  system ("cls"); // clears the screen

  // the entire for loop displays all three rows 
  for (int r = 1; r <= 3; r++)
  { // One iteration of the body of this loop displays row number r.
    // In other words, when r is 1, row 1 is displayed; 
    //                 when r is 2, row 2 is displayed; ...
    displayOneRowOfDesign1 ();
  } …
Run Code Online (Sandbox Code Playgroud)

c++

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

找不到实体类型的属性的支持字段,并且该属性没有 getter

我得到一个例外

System.InvalidOperationException : No backing field could be found for property 'ApartmentId' of entity type 'Address' and the property does not have a getter.

这是我的Apartment课:

public class Apartment
{
    public Apartment(Address address)
    {
        Address = address;
    }

    private Apartment()
    {
    }

    public int Id { get; private set; }
    public Address Address { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的Address值对象类:

public class Address : IEquatable<Address>
{
    private Address()
    {
    }

    public Address(string streetNumber, string streetName, string city, …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core

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