相关疑难解决方法(0)

c语言中%d和%*d之间有什么区别?

什么是%*d?我知道那%d是用的integers,所以我认为%*d也必须只涉及整数?它的目的是什么?它有什么作用?

int a=10,b=20;
printf("\n%d%d",a,b);
printf("\n%*d%*d",a,b);
Run Code Online (Sandbox Code Playgroud)

结果是

10 20 
1775 1775 
Run Code Online (Sandbox Code Playgroud)

c integer

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

奇怪的printf行为

        std::vector<DWORD64> v;
        for(size_t i = init; i < pageSize; ++i)
            v.push_back(i);

        DWORD64 last =  *(v.rbegin());
        DWORD64 first = *(v.begin());

        printf("%d %d \n", last, first);
        printf("%d %d \n", first, last);
Run Code Online (Sandbox Code Playgroud)

输出:

4095 0
0 0
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这个printf表现得那样?init或pageSize都不是0.我理解%d对无符号long long无效,但令我困扰的是当参数的顺序改变时printf的行为会发生变化.

c++ iterator stl

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

使用C语言传递结构成员时的printf行为

我正在尝试一个程序来理解结构变量的行为,

示例代码:

struct temp
{
   int a;
   int b;
}obj;

int main()
{
   obj.a = 10;
   obj.b = 7;
   /* to see whether obj and &obj both are same 
    * I was verifying whether structure variables behave as arrays
    */
   printf("%d -- %p",obj,&obj); 
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期待输出为10和obj的地址但令我惊讶的是,实际输出为10和00000007

这对我来说很烦人!!!

谁能帮助我理解为什么printf正在接受第二个成员并打印它的价值.

c

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

使用printf函数

当我开始学习没有C的C++时,我从不打扰寻找printf.现在我想在某些项目中使用格式化输出.所以我正在寻找一些可以解释使用printf和IO流之间差异的参考资料.

我怀疑的是:

float f = 1.5;
printf("%d", f);
Run Code Online (Sandbox Code Playgroud)

为什么打印为零?FWIK它应该重新解释float为int是真的吗?

c++ io

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

如果声明问题

看到我有一个复杂的代码,但我坚持一些在哪里,所以我只是给你一部分..

我有一个功能

function(int a,uint64_t b,int c);
Run Code Online (Sandbox Code Playgroud)

当我打电话给功能

  uint64_t b;
  int c;

  printf("enter b");
  scanf("%d",&b);  // i m giving 1

   printf("enter c");
   scanf("%d",&c);  // i m giving 2

  function(0xcd32ab00 ,b ,c);
Run Code Online (Sandbox Code Playgroud)

在该函数定义中,我将比较值b与另一个参数相比较

 /*  magicNum is type uint64_t type & it has value 1 */
if(magicNum == b) 
{
 // do something
}
Run Code Online (Sandbox Code Playgroud)

但是"做某事"并没有发生; 当我打印magicNum&b都有值1所以无法理解为什么会发生这种情况.

我写的时候

if((uint64_t)magicNum == (uint64_t)b) 
{
 // do something
}
Run Code Online (Sandbox Code Playgroud)

这很完美.

我知道我做了一个愚蠢的错误,但我没有得到... PLZ帮助我...我在32位Linux系统上工作

c

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

为什么在printf中传递的int和float会转到格式字符串中的错误位置?

printf函数int到%f,浮动到%d试图实验

#include<stdio.h>                                              
int main(){                                                    
    int i=10;                                                     
    float x=43.2892f;                                              
    printf("i=%f  x=%d \n",i,x);                               
    return 0;                                                  
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

i=43.289200  x=10      
Run Code Online (Sandbox Code Playgroud)

需要帮助来理解为什么这些变量是互换的?

c printf format-specifiers

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

标签 统计

c ×4

c++ ×2

format-specifiers ×1

integer ×1

io ×1

iterator ×1

printf ×1

stl ×1