小编sam*_*mer的帖子

当字符发生变化时,为什么这个std :: string的大小会发生变化?

我有一个问题,其中字符串的大小是由一个'\0'字符的存在实现的.我搜索到了所有的东西,但仍无法得到答案.

这是片段.

int main()
{
  std::string a = "123123\0shai\0";
  std::cout << a.length();
}
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/W6Bhfl

这种情况下的输出是

6
Run Code Online (Sandbox Code Playgroud)

其中具有不同字符串的相同程序具有数字而不是字符

int main()
{
  std::string a = "123123\0123\0";
  std::cout << a.length();
}
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/mtfS50

给出一个输出

8
Run Code Online (Sandbox Code Playgroud)

引擎盖下究竟发生了什么?'\0'角色的存在如何改变行为?

c++ string escaping

26
推荐指数
2
解决办法
1847
查看次数

从引用的库中使用时,未配置 Scanner TypeAnnotationsScanner

我有一个使用的类 org.reflections.Reflections在类路径中的类中获取注释。

当我在同一个项目中使用它时一切正常,但是当我将它导出为 JAR 并在不同的类中引用它时,我得到以下执行:

Exception in thread "main" org.reflections.ReflectionsException: Scanner TypeAnnotationsScanner was not configured
    at org.reflections.Store.get(Store.java:39)
    at org.reflections.Store.get(Store.java:61)
    at org.reflections.Store.get(Store.java:46)
    at org.reflections.Reflections.getTypesAnnotatedWith(Reflections.java:429)
Run Code Online (Sandbox Code Playgroud)

这是代码片段:

        System.out.println("Package to Scan: "+getPackageName());
        final Reflections reflections = new Reflections(getPackageName(), new TypeAnnotationsScanner());
        final Set<Class<?>> handlerClasses = reflections.getTypesAnnotatedWith(HandlerMapping.class,true);
Run Code Online (Sandbox Code Playgroud)

我确实提供了一个TypeAnnotationsScanner对象,但问题仍然存在。

注意:只有当上面的代码被称为 jar 时,它才起作用。(我使用 maven-assembly 插件创建了一个胖罐子)

任何指针?

java reflection

10
推荐指数
2
解决办法
8228
查看次数

如何使用c在Linux中获取当前时间戳(以纳秒为单位)

我知道我们可以使用clock_gettime(CLOCK_MONOTONIC).

我尝试问的问题是,如果我需要从纪元开始的纳秒时间,那将是一个巨大的数字。

例如:

  • 自纪元以来的秒数是13438461673这样13438461673 * 1000000000

我如何将它放入 64 位整数中?

c linux

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

可以将多少个参数传递给main()

主要参数的数量是否有限制?

这是一个完美运行的示例代码......我不知道是否允许它.

int main( char* argv[], int argc, int arv, bool test)
{
    cout<<"Hello"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

输出:你好

我在用

  • GCC-4.1.2_20070115-0.32.53

  • GCC-C++ - 4.1.2_20070115-0.32.53

  • libgcc中,4.1.2_20070115-0.32.53

  • GCC-objc-4.1.2_20070115-0.32.53

c++ gcc

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

在C++中打印"\"字符

这个问题可能很愚蠢但如果我了解这种行为会很好.

我试着打印

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

使用一个简单的程序

char testme [] ="\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\0";
cout<<"testme:"<<testme<<endl;
Run Code Online (Sandbox Code Playgroud)

这种情况下的输出是

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Run Code Online (Sandbox Code Playgroud)

我打算打印64"\"字符,而输出是32"\"字符.

似乎有一些我缺少的东西,因为输出正好是一半.

编辑:我问的原因是因为,我必须^ "\"另一个字符用于HMAC加密,我看到一些奇怪的事情.

c++

-2
推荐指数
2
解决办法
2256
查看次数

标签 统计

c++ ×3

c ×1

escaping ×1

gcc ×1

java ×1

linux ×1

reflection ×1

string ×1