小编Ful*_*igh的帖子

批量嵌套IF(IF(...)ELSE(..))语句

我正在尝试编写IF ELSE嵌套在另一个IF语句中的语句.这就是我所拥有的:

IF %dirdive%==1 ( 
    IF DEFINED log (
        ECHO %DATE%, %TIME% >> %log%
        FOR /R %root1% %%G IN (.) DO (
            SET _G=%%G
            CALL :TESTEVERYTHING !_G:~0,-1! %root1% %root2% %log%
        )
        GOTO :end
    ) ELSE ( 
        ECHO %DATE%, %TIME%
        FOR /R %root1% %%G IN (.) DO (
            SET _G=%%G
            CALL :TESTEVERYTHINGnolog !_G:~0,-1! %root1% %root2%
        )
        GOTO :end
    )
)
Run Code Online (Sandbox Code Playgroud)

什么时候log没有定义,我得到:

The syntax of the command is incorrect.
ECHO Wed 07/18/2012, 15:50:12.34 >>
Run Code Online (Sandbox Code Playgroud)

Aaaand我不知所措.我试过玩括号.我把最后一个移动到与之前相同的线上并且它不起作用.问题是,它 …

batch-file

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

在内存中处理多个空字符的C字符串

我需要在一块内存中搜索一串字符,但是这些字符串中有几个将每个字符都空分隔,如下所示:
"I. .am .a .string"
,所有的'.'为null字符.我的问题来自实际上将其记入内存.我尝试了几种方法,例如:

 char* str2; 
 str2 = (char*)malloc(sizeof(char)*40);   
 memcpy((void*)str2, "123\0567\09abc", 12);    
Run Code Online (Sandbox Code Playgroud)

将以下内容放入str2指向的内存中:123.7.9abc..

str2 = "123456789\0abcde\054321";
will这样的东西将str2指向一个看起来像的内存块123456789.abcde,321,其中'.' 是一个空字符,','是一个实际的逗号.

因此,清楚地将空字符插入到cstrings中并不像我想象的那样容易,就像插入换行符一样.我在使用字符串库时也遇到了类似的困难.我可以做单独的任务,例如:

 char* str;    
 str = (char*)malloc(sizeof(char)*40);  
 strcpy(str, "123");  
 strcpy(str+4, "abc");  
 strcpy(str+8, "ABC");  
Run Code Online (Sandbox Code Playgroud)

但这肯定不是优选的,我相信问题在于我对c样式字符串如何存储在内存中的理解.很明显,"abc\0123"实际上并没有进入内存61 62 63 00 31 32 33(以十六进制表示).它是如何存储的,我如何存储我需要的东西?

(我也为没有设置块的代码而道歉,这是我第一次发布一个问题,并且以某种方式"四个间隔"比我能处理得更困难.谢谢你,Luchian.我看到需要更多新行.)

c

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

设置FILE*是否等于stdout portable?

我有一个函数需要能够写入stdout或文件,具体取决于用户想要的.它默认为标准输出.为了实现这一点,我正在做以下(减去错误检查等):

FILE* out;
if (writeToFile) { /*Code to open file*/; }

else
    out = stdout;

// ...rest of the function goes here

if (out != stdout)
    fclose(out);
Run Code Online (Sandbox Code Playgroud)

这当然可以解决问题,但我不知道它有多便携.如果它不是,和/或它还有另一个问题,我应该怎么做呢?

c stdout

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

迭代多维向量(使用Auto关键字?)

是否有一种迭代多维向量的优雅方法?比方说,你有一个6D矢量,虽然我认为2D就足够了.就像是

vector< vector< int > myVector (6, vector<int> (5));
Run Code Online (Sandbox Code Playgroud)

有没有一种很好的方法来迭代这个,从myVector[0][0], myVector[0][1], ...etc??我在较大的维度上尝试它,并使用Auto关键字生成迭代器,但这并不好.这就是我的尝试:

for(auto it = myVector.begin(); it < myVector.end(); ++it)
    std::cout << *it;
Run Code Online (Sandbox Code Playgroud)

但它没有编译.请原谅我对STL中迭代器的理解,这已经很久了......

c++ iterator vector

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

标签 统计

c ×2

batch-file ×1

c++ ×1

iterator ×1

stdout ×1

vector ×1