帮我写一段代码:TCHAR szFilePath = _T("../../conf/upload/1.txt");获取szFilePath截取掉文件后两层后的数据,打印../../
时间: 2023-08-14 17:37:29 浏览: 87
您可以使用以下代码来截取 `szFilePath` 变量中的数据,然后打印结果:
```
TCHAR szFilePath[MAX_PATH];
_tcscpy_s(szFilePath, _T("../../conf/upload/1.txt"));
TCHAR* p = szFilePath + _tcslen(szFilePath) - 1; // 最后一个字符
int count = 0; // 计数器,用于记录已经遍历的路径分隔符数量
while (p >= szFilePath && count < 2) {
if (*p == '/' || *p == '\\') {
count++;
}
p--;
}
*(p + 1) = '\0';
_tprintf(_T("%s"), szFilePath);
```
这里的代码使用了指针 `p` 来指向字符串的末尾,然后向前遍历,每遇到一个路径分隔符就将计数器 `count` 加 1,直到计数器达到 2 或遍历完整个字符串为止。然后将 `p` 指向的位置后面的部分截断,即可得到截取后的路径。最后使用 `_tprintf` 函数打印结果。注意,这里假设路径中使用的是斜杠 `/`,如果实际使用的是反斜杠 `\`,则需要将代码中的 `/` 替换为 `\`。
相关问题
TCHAR szFilePath = _T("../../conf/upload/1.txt");如何获取到_T("../../conf/uncompress”)路径
您可以使用以下代码获取目标路径:
```
TCHAR szUncompressPath[MAX_PATH];
PathCombine(szUncompressPath, _T("..\\..\\conf\\uncompress"), NULL);
```
这里使用了 PathCombine 函数来组合路径,第一个参数是目标路径缓冲区,第二个参数是要添加到路径的子路径,第三个参数为NULL表示只是简单地将子路径添加到目标路径中。请注意,这里使用的是 "..\\..\\conf\\uncompress" 而不是 "../../conf/uncompress" ,因为在Windows平台上通常使用反斜杠作为路径分隔符。
TCHAR szFilePath = _T("../../conf/upload/1.txt"); 获取1.txt的所在路径
您可以使用以下代码获取1.txt所在的路径:
```
TCHAR szFilePath[MAX_PATH];
_tcscpy_s(szFilePath, _T("../../conf/upload/1.txt"));
TCHAR szDir[MAX_PATH];
_tsplitpath_s(szFilePath, NULL, 0, szDir, MAX_PATH, NULL, 0, NULL, 0);
TCHAR szFullPath[MAX_PATH];
_tmakepath_s(szFullPath, NULL, NULL, szDir, NULL);
```
这里使用了 `_tsplitpath_s` 函数来分离文件路径中的目录和文件名,然后使用 `_tmakepath_s` 函数将目录和文件名重新组合成完整的路径。最终的路径存储在 `szFullPath` 变量中。需要注意的是,`_tsplitpath_s` 函数用于分离路径时,不会包含路径分隔符。所以在重新组合路径时,需要手动加上路径分隔符。
阅读全文