小编D.C*_*.C.的帖子

从文件中读取,清除它,写入它

我正在尝试从文本文件中读取数据,清除它,然后使用fstream该类按顺序写入它.

我的问题是如何在阅读后清除文件.我知道我可以打开一个文件并同时清除它,但是我可以在流上调用一些函数来清除它的内容吗?

c++ file-io file

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

是否有任何编译器/预处理器技巧来调试打印枚举的名称?

我经常发现自己编写辅助调试器方法,返回一个可打印的字符串,给定一些枚举值.这样做的原因是当你通常记录枚举时,你得到的只是一个数字.我讨厌不得不回到我的来源找出那个枚举是什么.所以我会做类似的事情

typedef enum
{
   kOne = 1,
   kTwo,
   kThree,
}
MyEnum;

NSString *debugStringForEnum(MyEnum e)
{
    switch ( e )
        case kOne:
            return @"One";
        case kTwo:
            return @"Two";
        ....
}

....
NSLog(@"My debug log: %@", debugStringForEnum(someVariable));
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,有没有办法避免编写所有这些帮助代码,只是为了看到枚举的标签值?

谢谢

c debugging clang

14
推荐指数
2
解决办法
1776
查看次数

System.String的内部

我使用反射来查看System.String的内部字段,我找到了三个字段:

m_arrayLength

m_stringLength

m_firstChar
Run Code Online (Sandbox Code Playgroud)

我不明白这是如何工作的.

m_arrayLength是某个数组的长度.这个阵列在哪里?它显然不是字符串类的成员字段.

m_stringLength很有意义.这是字符串的长度.

m_firstChar是字符串中的第一个字符.

所以我的问题是字符串的其余字符在哪里?如果不在字符串类中,则存储字符串的内容在哪里?

c# string reflection

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

从Spring Controller获取Web App根目录

我正在尝试将上传的多部分文件写入文件系统.我有一个名为audio的目录,它位于我的Web应用程序的根目录中(不在WEB-INF内部,但在它旁边,它可以像css和javascript一样公开访问).

我想将上传的文件写入该目录,但我似乎无法获得我需要的路径.我认为获得ServletContext()然后使用realPath()可能会工作,但我没有通过Spring控制器引用ServletContext.谢谢任何肝脏

@RequestMapping(value="/uploadSample")
public ModelAndView upload(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile f) {

    if (f == null) {
        return new ModelAndView("upload", "msg", "The file is null.");
    }
    try {
        // I need to set AUDIO_PATH to <webAppRoot>/audio
        FileOutputStream file = new FileOutputStream(AUDIO_PATH + "/" + f.getOriginalFilename());
        file.write(f.getBytes());
        file.close();
    }
    catch (FileNotFoundException ex) {
        Logger.getLogger(SampleUploadController.class.getName()).log(Level.SEVERE, null, ex);
    }
    catch (IOException ex) {
            Logger.getLogger(SampleUploadController.class.getName()).log(Level.SEVERE, null, ex);
    }



   return new ModelAndView("upload", "msg", "File ( " + f.getOriginalFilename() + ") successfully uploaded.");
}
Run Code Online (Sandbox Code Playgroud)

}

java file-io spring

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

确认import*和xxx import之间的区别*

我很惊讶地发现了这一点

import foo
Run Code Online (Sandbox Code Playgroud)

from foo import *
Run Code Online (Sandbox Code Playgroud)

对全球会员有不同的影响.我想确认我的实验是正确的行为.

在第一个示例中,更改模块foo中的成员将反映在导入foo的所有代码中.但是,在后一种情况下更改该成员似乎只会影响导入它的文件.换句话说,使用后面的方法将为每个导入文件提供foo中自己的成员副本.

我想要的行为是从所有文件访问foo.x,能够从所有文件中更改它,并将更改反映在所有文件中(如果你愿意的话,真正的全局).

python python-import

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

解析git log输出,最好是xml

我想解析git log的输出.我当前的工具通过解析svn log具有的--xml选项为svn执行此操作.我似乎无法弄清楚如何将git log输出为xml.如果xml不是一个选项,那么解析此输出的最佳方法是什么?我真的想避免将其解析为原始文本,寻找"作者"和"日期"等.

谢谢

xml git logging

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

什么时候在C中使用寄存器?

我有类似的东西

register unsigned int a, b, c;
int n;
for (n = 0; n < 10; ++n){
c = a + b
b = a
a = c
array[n] = c;
}
Run Code Online (Sandbox Code Playgroud)

它做什么,没关系.代码以现在的方式快速运行,如果删除了register关键字,则代码更慢.但是,当我在int n之前添加寄存器时,它实际上比现在运行得慢,但比没有使用寄存器时更快.

谁可以给我解释一下这个?谢谢.

c cpu-registers

11
推荐指数
3
解决办法
9884
查看次数

使用Python解析二进制文件

作为一个副项目,我想尝试解析二进制文件(特别是Mach-O文件).我知道已存在的工具(otool),所以请考虑这是一个学习练习.

我遇到的问题是我不明白如何将发现的二进制元素转换为python表示.例如,Mach-O文件格式以标题开头,标题由C Struct定义.第一项是uint_32'魔数'字段.当我做

magic = f.read(4)
Run Code Online (Sandbox Code Playgroud)

我明白了

b'\xcf\xfa\xed\xfe'
Run Code Online (Sandbox Code Playgroud)

这开始对我有意义.它实际上是一个4字节的字节数组.但是我想把它当作一个4字节的int来表示原始的幻数.另一个例子是numberOfSections字段.我只想要由4字节字段表示的数字,而不是文字字节数组.

也许我正在考虑这一切都错了.有没有人在做类似的事情?我是否需要编写函数来查看这些4字节字节数组并移位并组合它们的值以产生我想要的数字?恩赐会让我在这里搞砸吗?任何指针都会非常有用.

python binaryfiles

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

zsh运行存储在变量中的命令?

在shell脚本(在.zshrc中)我试图执行一个命令,该命令作为字符串存储在另一个变量中.网络上的各种消息来源说这是可能的,但我没有得到我期望的行为.也许这是~在命令的开头,或者也许是使用sudo,我不确定.有任何想法吗?谢谢

function update_install()
{
    # builds up a command as a string...
    local install_cmd="$(make_install_command $@)"
    # At this point the command as a string looks like: "sudo ~some_server/bin/do_install arg1 arg2"
    print "----------------------------------------------------------------------------"
    print "Will update install"
    print "With command: ${install_cmd}"
    print "----------------------------------------------------------------------------"
    echo "trying backticks"
    `${install_cmd}`
    echo "Trying \$()"
    $(${install_cmd})
    echo "Trying \$="
    $=install_cmd
}
Run Code Online (Sandbox Code Playgroud)

输出:

Will update install
With command: sudo ~some_server/bin/do_install arg1 arg2

trying backticks
update_install:9: no such file or directory: sudo ~some_server/bin/do_install arg1 …
Run Code Online (Sandbox Code Playgroud)

shell scripting zsh

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

与maven的依赖管理

我最近成为Maven的忠实粉丝,用于控制我的应用程序的构建周期.但是,我遇到了Maven依赖管理的一些粗糙边缘.我想知道这些是否是工具和范例的限制,依赖管理的必要弊端,或者我是否只是错误地使用了工具.

  1. 首先是传递依赖的问题.据我了解,如果你提供一个依赖,Maven将反过来找到该依赖的任何依赖.这很好,但对于我的许多依赖项,这没有用.例如,在我的项目中包含Hibernate:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.3.2.GA</version>
    </dependency>
    
    Run Code Online (Sandbox Code Playgroud)

    导致slf4j缺少依赖性.我需要手动添加这个依赖项,我认为这将是Maven的工作.春天也是如此.如果我将Spring-MVC添加为依赖项,那么不应该为我添加所有基本的servlet依赖项(因为Spring-MVC需要这些东西)?我指的是servlet,jsp,jstl库.

  2. 其次是存储库的管理.Maven附带一个默认的主存储库,但我发现在很多情况下这个存储库不是最新的.例如,如果你想要spring3,你必须手动添加springource存储库,如果你想要hibernate 3.5+,你必须添加jboss存储库.当你必须自己寻找正确的存储库时,它似乎打败了自动依赖管理的重点.这种狩猎很快变得复杂.例如,要添加Spring3,您可能需要spring release repo,spring externals repo和spring milestone repo.

  3. 与数字2密切相关的是确保您拥有正确版本的工件.通过为给定的工件包含错误版本的依赖工件,我已被多次烧毁.例如,spring3的servlet/jsp/jstl apis的错误版本,或者hibernate的错误版本的持久性/注释apis.存储库中充满了许多版本,其中一些版本名称如productx-3.ga,productx-3-rc1,productx-3-SNAPSHOT,productx-3-cr,product-3-beta等等.其中一些显而易见(rc =发布候选版本),但尝试确定这些版本的顺序可能会令人困惑.

  4. 最后,类型一个依赖的问题.我可能只是不太了解这一点,但许多repo工件都是"pom"而不是"jar".有几次我在项目中添加了一个依赖jar,只是为了在构建时发现repo jar实际上并不存在(例子是jboss repo中的org.hibernate ejb3-persistence).

通过一些实验,我通常可以获得一个构建工作,但一般来说依赖管理这个复杂吗?我仍然更喜欢这种方法手动将jar文件添加到我的项目中,但我有兴趣学习如何提高我的maven依赖管理技能.

java dependencies maven-2

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