sprintf 在 C 中添加特殊字符
sprintf add special character in C
谁能帮帮我。我正在尝试创建一个文件夹,但是当我使用 sprintf
时,它会在末尾连接特殊字符,例如 OUUUU
,我该如何解决?
有一个图像(下面的 link),您可以在其中看到具有 "/home/mia"
的目录变量和缓冲区具有 "mkdir/home/miaOUUUU"
有什么建议吗?
我在 debian 中使用代码块...
https://drive.google.com/file/d/1q3KKBbyDjA8_dfwKT54_OT_5QeREIz7k/view?usp=sharing
你应该post问题正文中的代码,从你的IDE复制+粘贴和一个额外的缩进级别(select代码和类型Alt-K ),而不是作为位图的 link,这是非常粗鲁的。
directorio
不是空终止的。您必须用一个额外的元素将其声明为 char directorio[i + 1];
并确保将 directorio[i]
初始化为 '[=14=]'
.
memset
没有用,因为您在随后的 for
循环中覆盖了整个缓冲区。改为这样做:
char directorio[i + 1];
memcpy(directorio, path, i);
directorio[i] = '[=10=]';
DIRP *dirp = opendir(directorio);
if (dirp == NULL) {
...
} else {
// do not forget to close the directory
closedir(dirp);
}
另请注意,您应该创建从根目录到最终路径的目录,并且您应该处理与路径上的目录之一同名的现有文件的虚假情况。
谁能帮帮我。我正在尝试创建一个文件夹,但是当我使用 sprintf
时,它会在末尾连接特殊字符,例如 OUUUU
,我该如何解决?
有一个图像(下面的 link),您可以在其中看到具有 "/home/mia"
的目录变量和缓冲区具有 "mkdir/home/miaOUUUU"
有什么建议吗?
我在 debian 中使用代码块...
https://drive.google.com/file/d/1q3KKBbyDjA8_dfwKT54_OT_5QeREIz7k/view?usp=sharing
你应该post问题正文中的代码,从你的IDE复制+粘贴和一个额外的缩进级别(select代码和类型Alt-K ),而不是作为位图的 link,这是非常粗鲁的。
directorio
不是空终止的。您必须用一个额外的元素将其声明为 char directorio[i + 1];
并确保将 directorio[i]
初始化为 '[=14=]'
.
memset
没有用,因为您在随后的 for
循环中覆盖了整个缓冲区。改为这样做:
char directorio[i + 1];
memcpy(directorio, path, i);
directorio[i] = '[=10=]';
DIRP *dirp = opendir(directorio);
if (dirp == NULL) {
...
} else {
// do not forget to close the directory
closedir(dirp);
}
另请注意,您应该创建从根目录到最终路径的目录,并且您应该处理与路径上的目录之一同名的现有文件的虚假情况。