标签: printf

将格式化的printf(c)等效于C++中的格式化cerr

我要为等效printf("%2.2x", var);于cerr<<在C++中.
码:

typedef unsigned char byte;  
static byte var[10];  
for(i=1; i<10; i++)  
   printf("%2.2x", var[i]);
Run Code Online (Sandbox Code Playgroud)

我的想法是将调试重定向到这样的文件:./myprog 2>out.txt.
如果我不要求太多,我也想收到解释.
谢谢!

c c++ printf

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

为字符串格式添加自定义转换类型

无论如何在python中添加额外的转换类型到字符串格式?

%基于字符串格式化的标准转换类型是s字符串,d小数等等.我想要做的是添加一个新字符,我可以为其指定一个自定义处理程序(例如lambda函数)返回要插入的字符串.

例如,我想添加h一个转换类型来指定字符串应该转义以便在HTML中使用.举个例子:

#!/usr/bin/python

print "<title>%(TITLE)h</title>" % {"TITLE": "Proof that 12 < 6"}
Run Code Online (Sandbox Code Playgroud)

这将使用cgi.escape上"TITLE"生成以下的输出:

<title>Proof that 12 &lt; 6</title>
Run Code Online (Sandbox Code Playgroud)

python printf string-formatting

7
推荐指数
2
解决办法
5205
查看次数

Visual Studio中的sprintf错误

我正在windows visual studio中开发UDP套接字程序.我收到了sprintf语句的错误.怎么纠正呢?我的代码是:

    for (i = 0; i < 30;i++) //take-off
{
    printf("send AT*REF:take off\n");
            sprintf(command, "AT*REF=%d,290718208\r", seq++);



    rc = sendto(sd, command, strlen(command) + 1, flags, (struct sockaddr *) &droneAddr, sizeof(droneAddr));
    if (rc<0) {
        printf("%s: can not send data\n", argv[0]);
            return(1);
                    }
     }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Error   1 error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
Error   1 error LNK2019: unresolved external symbol __imp__bind@12
Error   2 error LNK2019: unresolved external symbol …
Run Code Online (Sandbox Code Playgroud)

c++ printf visual-studio

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

BASH printf数组,带有字段分隔符和最后一个条目的换行符

如何在BASH中打印出一个数组,并在每个值和最后一个换行符之间使用字段分隔符.

我用单个printf得到的最接近的是printf '%s|' "${arr1[@]}"| 是字段分隔符.这个问题是最后没有换行符.\n我尝试放入其中的任何组合要么在每个条目上都有一个换行符,要么根本没有!

有没有办法在一条线上做或我需要使用 printf '%s|' "${arr1[@]}";printf "\n"

谢谢,

杰兰特

bash printf

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

R:C++中来自Rprintf的suppressMessages

我正在编写一个R-package,其中包含一些运行冗长计算的C++代码.在C++代码中,我使用Rprintf()来输出信息.我尝试使用suppressMessages()来抑制R的输出,但是这不起作用,消息仍然出现在R会话中.

我发现了一些类似的问题,人们使用的是printf而不是Rprintf,但我已经在使用Rprintf了.我也尝试过R_ShowMessage(),它也会立即显示而不会被suppressMessages()抑制.

这是一些示例C++代码:

#include <R.h>
extern "C" {
void R_testprint()
{
    Rprintf("Try to suppress me!\n");
    R_ShowMessage("Try to suppress me, too!");
}
}
Run Code Online (Sandbox Code Playgroud)

以及调用此代码的函数:

test.print <- function(string) {
    res <- .C("R_testprint")
}
Run Code Online (Sandbox Code Playgroud)

现在,以下R代码不会抑制输出:

> suppressMessages( test.print() )
Try to suppress me!
Try to suppress me, too!
Run Code Online (Sandbox Code Playgroud)

我使用的是R版本3.1.0

我感谢任何帮助!

c++ printf r suppress

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

在bash中重定向stdout与使用fprintf(速度)在c中写入文件

我想知道哪个选项基本上更快.

最让我感兴趣的是重定向机制.我怀疑文件在程序开始时打开,./program > file并在最后关闭.因此,每当程序输出一些东西时,它应该只是写入文件,就像听起来一样简单.是这样吗?然后我猜两种选择在速度方面都应该具有可比性.

或者它可能是一个更复杂的过程,因为操作系统必须执行更多操作?

c bash printf stdout

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

'printf -v'有什么作用?

在printf -v网上的bash脚本示例中遇到过几次这个问题之后,以及有关stackoverflow的几个问题,我在printf联机帮助页中找不到合适的解释.

man printf或者man 3 printf不帮助我.

我在哪里寻找?

bash printf

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

为什么在C中调用函数时允许传递的参数数量不足?

我知道函数原型在C++中是强制性的,如果函数是在main()函数之后定义的,但它在C中是可选的(但推荐).我最近编写了一个简单的程序,它执行了2个数字的加法,但错误地使用了点运算符代替传递参数时的逗号.

#include <stdio.h>
int main()
{
    printf("sum is: %d",add(15.30)); // oops, uses dot instead of comma
}

int add(int a,int b)
{
    return a+b;
}
Run Code Online (Sandbox Code Playgroud)

在上面的程序中,如果在add(int,int)函数之前定义了main()函数,那么程序肯定无法编译.这是因为调用函数时传递的参数少于所需的参数.

但是,为什么上面的程序编译运行正常 - 给出一些大的垃圾值作为输出?是什么原因?使用函数原型设计是否更好,以便编译器检测到类型不匹配以及与函数调用相关的任何其他错误?

这是未定义的行为吗?

c printf parameter-passing function-call

7
推荐指数
2
解决办法
854
查看次数

我是否应该在App Store中发布带有打印语句的应用程序?

我打算很快将我的应用程序发布到App Store(在TestFlight之后).我有很多视图控制器print,其中包含语句.这些print语句用于测试目的(调试器),用户永远不会看到它们.

如果我在应用程序中发布或不包含打印语句,它会有什么不同吗?

打印语句是否会在场景之间切换时降低速度,即使是毫秒?

我可以因为将它们包含在我的应用中而被拒绝吗?

在几个vcs中我打印uid只是为了清楚我自己.通过在应用程序中包含这些打印语句,是否存在任何安全风险?

security printf uiviewcontroller ios mac-app-store

7
推荐指数
2
解决办法
989
查看次数

__int64到CString返回错误的值 - C++ MFC

我想将__int64变量转换为CString.代码就是这样

__int64 i64TotalGB;
CString totalSpace;
i64TotalGB = 150;
printf("disk space: %I64d GB\n", i64TotalGB);
totalSpace.Format(_T("%I64d", i64TotalGB));
printf("totalSpace contains: %s", totalSpace);
Run Code Online (Sandbox Code Playgroud)

第一个printf打印

"disk space: 150GB"
Run Code Online (Sandbox Code Playgroud)

它是正确的,但第二个printf打印随机高数字,如

"totalSpace contains: 298070026817519929"

我也尝试使用INT64变量而不是__int64变量,但结果是一样的.这可能是什么原因?

c++ printf mfc c-strings int64

7
推荐指数
2
解决办法
282
查看次数