我正在尝试编写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我不知所措.我试过玩括号.我把最后一个移动到与之前相同的线上并且它不起作用.问题是,它 …
我需要在一块内存中搜索一串字符,但是这些字符串中有几个将每个字符都空分隔,如下所示:
"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.我看到需要更多新行.)
我有一个函数需要能够写入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)
这当然可以解决问题,但我不知道它有多便携.如果它不是,和/或它还有另一个问题,我应该怎么做呢?
是否有一种迭代多维向量的优雅方法?比方说,你有一个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中迭代器的理解,这已经很久了......