标签: format

C++:如何将fprintf结果作为std :: string w/o sprintf

我正在使用一个用C++实现的开源UNIX工具,我需要更改一些代码才能让它做我想做的事情.我想做出尽可能小的改变,希望上传接受我的补丁.可以在标准C++中实现并且不创建更多外部依赖性的解决方案是首选.

这是我的问题.我有一个C++类 - 我们称之为"A" - 目前使用fprintf()将其格式严格的数据结构打印到文件指针.在其print函数中,它还递归调用几个成员类的相同定义的打印函数("B"是一个例子).还有另一个C类,它有一个成员std :: string"foo",需要设置为A实例的print()结果.把它想象成A的to_str()成员函数.

在伪代码中:

class A {
public:
  ...

  void print(FILE* f);
  B b;

  ...  
};

...

void A::print(FILE *f)
{
  std::string s = "stuff";
  fprintf(f, "some %s", s);
  b.print(f);
}

class C {
  ...
  std::string foo;
  bool set_foo(std::str);
  ...
}

...

A a = new A();
C c = new C();

...

// wish i knew how to write A's to_str()
c.set_foo(a.to_str());
Run Code Online (Sandbox Code Playgroud)

我应该提到C是相当稳定的,但是A和B(以及A的其余部分)处于不稳定的状态,因此所需的代码变化越少越好.还需要保留当前的打印(FILE*F)界面.我已经考虑了几种实现A :: to_str()的方法,每种方法都有优点和缺点:

  1. 将对fprintf()的调用更改为sprintf()

    • 我不必重写任何格式字符串
    • print()可以重新实现为:fprint(f,this.to_str());
    • 但是我需要手动分配char [] s,合并很多c字符串,最后将字符数组转换为std :: string
  2. 尝试在字符串流中捕获a.print()的结果 …

c++ unix format printf stdstring

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

Python 2.6+ str.format()和正则表达式

Using str.format()是在Python 2.6和Python 3中格式化字符串的新标准.我在使用str.format()正则表达式时遇到了一个问题.

我写了一个正则表达式来返回指定域下的单个级别的所有域或者指定域下2级的任何域,如果下面的第二级是www ...

假设指定的域名是delivery.com,我的正则表达式应该返回a.delivery.com,b.delivery.com,www.c.delivery.com ......但它不应该返回xadelivery.com.

import re

str1 = "www.pizza.delivery.com"
str2 = "w.pizza.delivery.com"
str3 = "pizza.delivery.com"

if (re.match('^(w{3}\.)?([0-9A-Za-z-]+\.){1}delivery.com$', str1): print 'String 1 matches!'
if (re.match('^(w{3}\.)?([0-9A-Za-z-]+\.){1}delivery.com$', str2): print 'String 2 matches!'
if (re.match('^(w{3}\.)?([0-9A-Za-z-]+\.){1}delivery.com$', str3): print 'String 3 matches!'
Run Code Online (Sandbox Code Playgroud)

运行它应该给出结果:

String 1 matches!
String 3 matches!
Run Code Online (Sandbox Code Playgroud)

现在,问题是当我尝试使用str.format动态替换delivery.com时...

if (re.match('^(w{3}\.)?([0-9A-Za-z-]+\.){1}{domainName}$'.format(domainName = 'delivery.com'), str1): print 'String 1 matches!'
Run Code Online (Sandbox Code Playgroud)

这似乎失败了,因为str.format()期望{3}{1}成为函数的参数.(我假设)

我可以使用+运算符连接字符串

'^(w{3}\.)?([0-9A-Za-z-]+\.){1}' + domainName + '$'
Run Code Online (Sandbox Code Playgroud)

问题归结为,str.format()当字符串(通常是正则表达式)中有" {n} " 时,是否可以使用?

python regex format string-formatting

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

如何将jquery datepicker格式化为"25-JAN-2009"

我原以为这是:

.datepicker({ dateFormat: 'dd-mmm-yyyy' });
Run Code Online (Sandbox Code Playgroud)

一个月,我得到一些我不知道他们来自哪里的号码?

format jquery datepicker

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

什么浮点值使sprintf_s()产生"1.#QO"?

我有一些(遗留嵌入式c)代码,它通过一些sprintf调用生成.csv文件.偶尔我会看到的价值观1.#QO.我尝试过复制这些值的条件应该给出负无穷大,正无穷大和NaN,但它们似乎都没有给我神奇的1.#QO结果.那么产生这种价值的是什么呢?

......是的,我知道数学中出现了明显的问题,产生了这个价值,但理解它的意义将有助于调试工作.

[编辑1]进行转换的实际行是:

sprintf_s(txt, CSV_HEADER_SIZE, "%.3f", value);
Run Code Online (Sandbox Code Playgroud)

哪里:

#define CSV_HEADER_SIZE (100)
char txt[CSV_HEADER_SIZE];
Run Code Online (Sandbox Code Playgroud)

我正在使用MS Visual Studio 2008进行编译.

[编辑2]更多挖掘节目0xFFFFFFFF给出-1.#QO:

unsigned int i = 0xFFFFFFFF;
float* f = (float*)&i;
printf("%.3f", *f); // gives -1.#QO
Run Code Online (Sandbox Code Playgroud)

..并在Visual Studio调试器中-1.#QNAN00查看它将其扩展为所以看起来这可能是Microsoft特定的表示形式NaN

c format floating-point printf visual-studio-2008

18
推荐指数
1
解决办法
6359
查看次数

sql server date的格式为yyyy-MM-ddThh:mm:ssZ

我需要将SQL Server中的一组日期格式化为以下格式.

yyyy-MM-ddThh:mm:ssZ
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到如何使用字符串中包含的T和Z部分格式化日期

有关如何在SQL查询中实现此格式的任何想法?

sql-server format datetime

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

Objective-C:格式数到序数:1,2,3,..到第1,第2,第3

在Objective C中,有没有什么方法可以格式化integer为序数1 =>"1st",2 =>"2nd"等...适用于任何语言?因此,如果用户是法国人,他将看到"1er","2ieme"等.

非常感谢!

编辑:这是一个iOs应用程序

format numbers objective-c number-formatting ios

18
推荐指数
2
解决办法
4820
查看次数

适用于iOS和Android的音频格式

对不起,如果我问的是一般问题.

我们正在开发一个在移动设备上录制和播放音频的应用程序.此应用程序正在为Android和iOS开发.应用程序将使用设备麦克风录制音频并将其存储在服务器中.

用户(在Android和iOS上)可以打开应用程序并播放存储在服务器上的声音.我们使用的声音格式是AAC.在iOS中它的工作正常.我们可以录制和播放AAC文件.

但在Android(三星S3和三星Galaxy Y)上,我们无法以AAC格式录制声音.但在S3中我们可以播放AAC文件.

我的问题是,我们应选择哪种格式用于在Android中录制和播放(应支持从2.3到Jellybean)和iOS.我们应该使用MP4吗?

我们的一个解决方案是,在后端,我们可以将音频文件转换为AAC,MP4或3GP,并根据版本将支持的文件提供给手机.

format audio android ios

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

Robots.txt - 多个用户代理的抓取延迟的正确格式是什么?

下面是一个示例robots.txt文件,允许多个用户代理为每个用户代理提供多个爬网延迟.抓取延迟值仅用于说明目的,并且在真实的robots.txt文件中会有所不同.

我已经在网上搜索了正确的答案,但找不到一个.有太多混合的建议,我不知道哪个是正确/正确的方法.

问题:

(1)每个用户代理都可以拥有自己的抓取延迟吗?(我假设是的)

(2)在Allow/Dissallow行之前或之后,您在哪里为每个用户代理放置了爬行延迟行?

(3)每个用户代理组之间是否必须有空白.

参考文献:

http://www.seopt.com/2013/01/robots-text-file/

http://help.yandex.com/webmaster/?id=1113851#1113858

基本上,我希望找出最终robots.txt文件应该如何使用下面示例中的值.

提前致谢.

# Allow only major search spiders    
User-agent: Mediapartners-Google
Disallow:
Crawl-delay: 11

User-agent: Googlebot
Disallow:
Crawl-delay: 12

User-agent: Adsbot-Google
Disallow:
Crawl-delay: 13

User-agent: Googlebot-Image
Disallow:
Crawl-delay: 14

User-agent: Googlebot-Mobile
Disallow:
Crawl-delay: 15

User-agent: MSNBot
Disallow:
Crawl-delay: 16

User-agent: bingbot
Disallow:
Crawl-delay: 17

User-agent: Slurp
Disallow:
Crawl-delay: 18

User-agent: Yahoo! Slurp
Disallow:
Crawl-delay: 19

# Block all other spiders
User-agent: *
Disallow: /

# Block …
Run Code Online (Sandbox Code Playgroud)

format robots.txt web-crawler agents

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

调用函数的python字符串格式

有没有办法用新格式语法格式化函数调用的字符串?例如:

"my request url was {0.get_full_path()}".format(request)
Run Code Online (Sandbox Code Playgroud)

所以它调用该函数get_full_path的功能里面的字符串,而不是作为格式功能的参数.

编辑:这是另一个可能更好地表明我的挫败感的例子,这就是我想要的:

"{0.full_name()} {0.full_last_name()} and my nick name is {0.full_nick_name()}".format(user)
Run Code Online (Sandbox Code Playgroud)

这是我想要避免的:

"{0} and {1} and my nick name is {2}".format(user.full_name(), user.full_last_name(), user.full_nick_name())
Run Code Online (Sandbox Code Playgroud)

python format python-3.x

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

如何在JavaDoc中插入创建日期

在JavaDoc中插入类的创建日期的最佳方法是什么?一些例子:

在author标签下面,带有字符串"created on"

/**
 * Class description
 *
 * @author Author Name
 * created on 2015/04/01
 */
public class ClassName() {
...
}
Run Code Online (Sandbox Code Playgroud)

在author标签下面,带有字符串"Date:"

/**
 * Class description
 *
 * @author Author Name
 * Date:   2015/04/01
 */
public class ClassName() {
...
}
Run Code Online (Sandbox Code Playgroud)

使用不存在的@date标记

/**
 * Class description
 *
 * @author Author Name
 * @date   2015/04/01
 */
public class ClassName() {
...
}
Run Code Online (Sandbox Code Playgroud)

其他...

最终,最好的日期格式是什么?

April 1, 2015
2015/04/01
...
Run Code Online (Sandbox Code Playgroud)

java format formatting javadoc

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