定义:
变量:
myFilePath 是一个C-String
int len = strlen(workingDir);
char lastChar = workingDir[len - 1];
下面, myFilePath 由 workingDir + 反斜杠 +文字“myfile.txt” <组成/ p>
在三元论证中,如果没有反斜杠,我试图反斜杠。
snprintf(myFilePath,
sizeof(myFilePath),
"%s%s%s",
workingDir,
(lastChar == CHAR_BACKSLASH) ? "" : "\\",
"myfile.txt");
如果可能的话,我想把它改成这样的东西,但不知道如何,因为它需要一个空的单引号字符,而且我不确定是否允许这样做。
snprintf(myFilePath,
sizeof(myFilePath),
"%s%c%s",
workingDir,
(lastChar == CHAR_BACKSLASH) ? '' : CHAR_BACKSLASH,
"myfile.txt");
答案 0 :(得分:2)
为什么不呢?那么你不必担心''是否是%c的有效案例。并且snprintf只需要少量varg来处理。
snprintf(myFilePath,
sizeof(myFilePath),
(lastChar == '\\') ? "%s%s" : "%s\\%s"
workingDir,
"myfile.txt");