标签: format

如何使用GCC属性'format'?

这是一小段代码:

#include <stdio.h>
#include <stdarg.h>

void MyPrintf(char const* format, va_list args);
void MyVariadicPrintf(char const* format, ...);

void MyPrintf(char const* format, va_list args)
{
    vprintf(format, args);
}

void MyVariadicPrintf(char const* format, ...)
{
    va_list args;
    va_start(args, format);
    MyPrintf(format, args);
    va_end(args);
}

int main(int, char*)
{
    MyVariadicPrintf("%s" /* missing 2nd argument */);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用GCC 4.0编译它,在Mac OS X Leopard上运行Xcode.
-Wformat和-Wmissing-format-attribute已启用.
此代码在第9行(调用vprintf)上发出警告,建议MyPrintf可以使用'format'属性:

函数可能是'printf'格式属性的候选者

所以我以这种方式添加属性(不确定这是否正确):

void MyPrintf(char const* format, va_list args) __attribute__((format(printf, 1, 0)));
Run Code Online (Sandbox Code Playgroud)

之前的警告消失,同样的警告现在出现在第16行(呼叫MyPrintf)上,表明MyVariadicPrintf可以使用'format'属性. …

format printf attributes gcc warnings

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

fmt.Sprintf传递一组参数

对不起基本问题.我想把一个切片作为参数传递给fmt.Sprintf.像这样的东西:

values := []string{"foo", "bar", "baz"}
result := fmt.Sprintf("%s%s%s", values...)
Run Code Online (Sandbox Code Playgroud)

结果会是foobarbaz,但这显然不起作用.

(我想格式化的字符串比这更复杂,所以简单的连接不会这样做:)

所以问题是:如果我有数组,我怎么能把它作为单独的参数传递给fmt.Sprintf?或者:我可以在Go中调用一个传递参数列表的函数吗?

format go

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

将C#字符串解析为DateTime

我有一个这样的字符串:250920111414

我想从该字符串创建一个DateTime对象.截至目前,我使用substring并像这样做:

string date = 250920111414;

int year = Convert.ToInt32(date.Substring(4, 4));
int month = Convert.ToInt32(date.Substring(2, 2));
...
DateTime dt = new DateTime(year, month, day ...);
Run Code Online (Sandbox Code Playgroud)

是否可以使用字符串格式来做同样的事情,没有子字符串?

.net c# string format datetime

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

以百分比显示y轴?

我正在创建一个图表,我希望我的y轴刻度标签显示为百分比(而不是小数).我怎样才能做到这一点?

我当前的代码看起来像

yAxis
  .append("text")
  .attr("class", "ticklabel")
  .attr("x", 0)
  .attr("y", y)
  .attr("dy", ".5em")
  .attr("text-anchor", "middle")
  .text(y.tickFormat(5))
  .attr("font-size", "10px")
Run Code Online (Sandbox Code Playgroud)

我注意到d3有一个格式说明符,但我不确定如何结合使用它们tickFormat.

javascript format svg d3.js

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

vim表格只在第一场比赛的线上?

我正在尝试使用tabular.vim插件格式化一些python代码.它目前是sqlalchemy声明类,看起来像这样:

id     =  db.Column(db.Integer, primary_key=True)
status    =  db.Column(db.Integer, nullable=False, default=3)
...etc...
Run Code Online (Sandbox Code Playgroud)

我希望能够只对齐列表中的第一个等号.

id     =  db.Column(db.Integer, primary_key=True)
status =  db.Column(db.Integer, nullable=False, default=3)
...etc...
Run Code Online (Sandbox Code Playgroud)

只是一个常规

: Tabularize /=
Run Code Online (Sandbox Code Playgroud)

似乎与一切相符,一切都变得疯狂.

首先十分感谢!

format vim formatting tabular

13
推荐指数
3
解决办法
2466
查看次数

在Java中打印带有2个小数位的整数

在我的代码中,我使用整数乘以100作为小数(0.1是10等).你能帮我格式化输出以显示为十进制吗?

java format number-formatting output

13
推荐指数
3
解决办法
6万
查看次数

Makefile语法

有没有精确的 makefile语法定义?或者至少是一些常见的子集,因为我猜有一些风味.这种语法可用于编写解析器.

GNU Make手册似乎并不那么精确.需要一些猜测和反复试验才能根据该文档为makefile编写解析器.

我还在ANTLR邮件列表上找到了类似的问题.但它仍然没有答案,这表明答案......

format makefile

13
推荐指数
2
解决办法
1707
查看次数

swscaler警告:使用不推荐使用的像素格式

我想在使用以下代码将视频帧转换为opengl纹理之前对其进行颜色空间转换:

struct SwsContext * pSwsCtx = sws_getCachedContext(NULL,width, height, codec->pix_fmt, width, height, AV_PIX_FMT_RGBA, SWS_POINT, NULL, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

每次调用sws_getCachedContext()函数时,都会收到以下警告:

[swscaler @ 0x10506fa00] deprecated pixel format used, make sure you did set range correctly
Run Code Online (Sandbox Code Playgroud)

这是我的ffmpeg输出版本信息:

ffmpeg version 2.2 Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 26 2014 15:29:01 with Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid …
Run Code Online (Sandbox Code Playgroud)

format ffmpeg pixel

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

PowerShell Round和Format Float最多2位小数?

我发现很多东西可以将浮点数格式化为常见的已知数字,但是如何将浮点数格式化为最多2位小数,但仅当需要小数时?

例子:

  1.11 # not 1.111
  1.12 # it was 1.116 (round up)
  1.1  # not 1.10
  1    # not 1.00
Run Code Online (Sandbox Code Playgroud)

如果我做

  $('{0:N2}' -f $flt)
Run Code Online (Sandbox Code Playgroud)

我明白了

  1.00 # :(
Run Code Online (Sandbox Code Playgroud)

提前致谢!

format floating-point powershell

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

用相同的变量替换Sprintf中的所有变量

是否可以使用fmt.Sprintf()相同的值替换格式化字符串中的所有变量?

就像是:

val := "foo"
s := fmt.Sprintf("%v in %v is %v", val)
Run Code Online (Sandbox Code Playgroud)

哪会回来

"foo in foo is foo"
Run Code Online (Sandbox Code Playgroud)

string format printf go

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