小编Ton*_*ris的帖子

sscanf:从具有未知出现次数的模式中检索int

我用fstream读了一个ascii文件.一行包含至少两个以下patern重复(最多128个):

 %d %llu %d %d %llu %d %d %llu
Run Code Online (Sandbox Code Playgroud)

对于每一行,我需要行中每个模式的第三个%d的最大值

我找不到用sscanf正确完成的方法.

myFstreams->getline (buffer, MAX_BUFF-1);
while( ... ){
    sscanf (buffer," %*d %*llu %*d %d %*llu %*d %*d %*llu",&number);
    if(number>max) max=number;
    //modify buffer ???
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

c++ scanf

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

删除xml文件中两个标签之间的EOL和空格

我有很多行(超过50个)xml文件,其中某些行格式错误(每个文件超过30/40个):

例如:

<TAG1>
    <TAG_TO_FORMAT>
           a_random_string

    </TAG_TO_FORMAT>
    <AN_OTHER_TAG_TO_FORMAT>
                       an_other_random_string
    </AN_OTHER_TAG_TO_FORMAT>
    <OTHER_TAG>pifpafpouf</OTHER_TAG>

</TAG1>
Run Code Online (Sandbox Code Playgroud)

应该变成这样:

<TAG1>
    <TAG_TO_FORMAT>a_random_string</TAG_TO_FORMAT>
    <AN_OTHER_TAG_TO_FORMAT>an_other_random_string</AN_OTHER_TAG_TO_FORMAT>
    <OTHER_TAG>pifpafpouf</OTHER_TAG>

</TAG1>
Run Code Online (Sandbox Code Playgroud)

不管新行</TAG1>是否仍然存在,我的关键问题是每个模式:<TAG>random_string</TAG>必须在一行上(random_string不包含EOL)

我在bash中找不到允许我执行此操作的任何工具,那么我如何在bash中执行此操作?(或者也许在python中,但我更喜欢bash)。

xml bash formatting

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

标签 统计

bash ×1

c++ ×1

formatting ×1

scanf ×1

xml ×1