标签: printf

为什么NSString和NSLog似乎以不同方式处理%C和%lc(以及%S和%ls)?

Apple的字符串格式说明符记录了声明,

NSString格式化方法和CFString格式化函数支持的格式说明符遵循IEEE printf规范 ; ...您也可以将这些格式说明符与NSLog函数一起使用.

但是,尽管printf规范定义%C作为等同于%lc和%S作为等同于%ls只%C和%S看起来与正常工作NSLog和+[NSString stringWithFormat:].

例如,请考虑以下代码:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    unichar str[3];
    str[0] = 63743;
    str[1] = 33;
    str[2] = (unichar)NULL;

    NSLog(@"NSLog");
    NSLog(@"%%S:  %S", str);
    NSLog(@"%%ls: %ls", str);

    NSLog(@"%%C:  %C", str[0]);
    NSLog(@"%%lc: %lc", str[0]);

    NSLog(@"\n");
    NSLog(@"+[NSString stringWithFormat:]");

    NSLog(@"%%S:  %@", [NSString stringWithFormat:@"%S", str]);
    NSLog(@"%%ls: …
Run Code Online (Sandbox Code Playgroud)

unicode formatting cocoa printf

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

解释printf中的评估顺序

main()
{
    int i=5;
    printf("%d%d%d%d%d%d",i++,i--,++i,--i,i);
}
Run Code Online (Sandbox Code Playgroud)

输出是45545,但我不知道它是如何工作的.有人说函数调用中的参数从左到右被压入堆栈.

c printf

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

需要在python中找到print或printf的源代码

我正在研究一些我无法完全谈论的事情.我只能说我是信息安全和计算机科学的学生.

我只需要在python中更改一些深层次的源代码.现在,我特意想更改内置打印功能中的源代码.不幸的是,我找不到它定义在python源代码文件中的任何位置.

有什么想法吗?

非常感谢.

编辑:具体的问题是询问Python中的打印功能是否可以被其他东西覆盖.这是为了在Python解释器中植入后门.

python printing printf

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

pthread:一个printf语句在子线程中打印两次

这是我的第一个pthread程序,我不知道为什么printf语句在子线程中打印两次:

int x = 1;

void *func(void *p)
{
    x = x + 1;
    printf("tid %ld: x is %d\n", pthread_self(), x);
    return NULL;
}

int main(void)
{
    pthread_t tid;
    pthread_create(&tid, NULL, func, NULL);

    printf("main thread: %ld\n", pthread_self());

    func(NULL);
}
Run Code Online (Sandbox Code Playgroud)

在我的平台上观察到的输出(Linux 3.2.0-32-generic#51-Ubuntu SMP x86_64 GNU/Linux):

1.
main thread: 140144423188224
tid 140144423188224: x is 2

2.
main thread: 140144423188224
tid 140144423188224: x is 3

3.
main thread: 139716926285568
tid 139716926285568: x is 2
tid 139716918028032: x is 3
tid 139716918028032: x is …
Run Code Online (Sandbox Code Playgroud)

printf pthreads

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

constexpr"[v [n]] sprintf"可能吗?

我的直觉答案是肯定的,实现也可以由"printf"使用.对于用户定义的类型,可能很容易超载.

有没有人曾尝试过这个?

c++ printf

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

如何用相同的模式和标志打开fdopen?

我想要一个FILE*类型使用fprintf.我需要用来fdopen获得一个FILE*而不是open那个返回一个int.但是,我们可以做同样的fdopen和open?(我从未使用过fdopen)

我想这样做fdopen:

open("my_file", 0_CREAT | O_RDWR | O_TRUNC, 0644);
Run Code Online (Sandbox Code Playgroud)

c file-io printf fdopen

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

C科学符号指数格式

是否可以控制printf的科学记法(e)打印的指数中显示的位数?

这段代码

#include <stdio.h>

int main(void) {
    printf("%6.3e", 403.0);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

产生(取决于编译器/平台):

4.030e+002(VS2010)或4.030e+02(gcc 4.3.4)或甚至4.030e+2

在比较不同平台上生成的文件时,指数中不同的位数很容易混淆diff工具.

c printf

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

将$插入格式化的float java中

我正在尝试格式化浮点数在数字前面有一个美元符号.目前我正试图从左侧打印150个空格.

System.out.printf("%150.2f", orderTotal);

这就是我正在使用的但我无法弄清楚在哪里放$我想我可以把整个东西变成一个字符串,但我想知道是否有办法做我正在寻找的东西?

java formatting printf

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

如何避免R的sprintf中的换行符("非常长的字符串断行")?

我里面有一根很长的绳子sprintf().它是如此之长,以至于它有用(可读性)来打破它(但只在源代码中,而不是在输出中).但每当我打破长字符串时,它就会引入a \n,因此输出也有一个换行符.如何在源代码中打破字符串,使其在输出中不被破坏?

printf r

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

使用sprintf打印字符串值

实际上,我在Gnuplot中遇到了这个问题。但是以一种简单的方式,问题是我想使用sprintf以字符串格式打印,即使字符串由数字和符号组成。像这样:

a = '12/7'

sprintf('%.f', a)
Run Code Online (Sandbox Code Playgroud)

我可以在Gnuplot中运行它,但是它只显示符号“ /”之前的数字。我希望输出应打印出变量a'12 / 7'的所有内容。对这种情况有什么建议吗?

printf gnuplot

5
推荐指数
2
解决办法
9746
查看次数

标签 统计

printf ×10

c ×3

formatting ×2

c++ ×1

cocoa ×1

fdopen ×1

file-io ×1

gnuplot ×1

java ×1

printing ×1

pthreads ×1

python ×1

r ×1

unicode ×1