69,371
社区成员
发帖
与我相关
我的任务
分享
void inputPassword(unsigned char *password,unsigned char *size)
{
unsigned char ch;
unsigned char chc = 0;
while ((ch = getch()) != 0x0D)//Enter
{
if (ch == 0x08)//Backspace
{
if (chc)//If not empty
{
chc--;
printf("\b \b");
}
continue;
}
if (chc < 16)//Password max length
{
password[chc++] = ch;
putchar('*');
}
}
*size = chc;
}
[code=c]
char ch;
int jj = j;
scanf("%c", &ch);
if (ch != '\n')
if (ch == '\b') {
srcpath[--j] = '\0';
printf("\r%s", srcpath); // '\r':使光标回到开头的位置
for (i = j; i < jj; i++) putchar(' ');
for (i = j; i < jj; i++) putchar('\b');
} else 处理destpath;
else 加密;[/quote]
[code=c]
char ch;
int jj = j;
scanf("%c", &ch);
if (ch != '\n')
if (ch == '\b') {
srcpath[--j] = '\0';
printf("\r%s", srcpath); // '\r':使光标回到开头的位置
for (i = j; i < jj; i++) putchar(' ');
for (i = j; i < jj; i++) putchar('\b');
} else 处理destpath;
else 加密;
if((c = getch()) == '\b')
printf(" \b");
2.先把字符串后面的截掉,具体怎么做如下所示
int i, j = -1;
for (i = 0; i < strlen(srcdir); i++)
if (srcdir[i] == '\\') j = i;
if (j == -1 || i - 1 == j) 提示不合法;
strncpy(srcpath, srcdir, j);
至于删不掉那个问题可以这么解决:
[code=c]
char ch;
int jj = j;
scanf("%c", &ch);
if (ch != '\n')
if (ch == '\b') {
srcpath[--j] = '\0';
printf("\r%s", srcpath); // '\r':使光标回到开头的位置
for (i = j; i < jj; i++) putchar(' ');
for (i = j; i < jj; i++) putchar('\b');
} else 处理destpath;
else 加密;
printf("Source: ");
scanf("%s", srcfilename);
printf("Destination: ");
getdir(srcfilename,srcdir);//此函数得到源文件的目录
printf("%s", srcdir);//然后将此目录作为输出文件的默认目录
scanf("%s", desfilename);
//然后我可以把srcdir和desfilename合在一起作为输出文件的路径
//但问题是这样用户就不能修改目录了,即没办法删除printf("%s", srcdir)打出来的目录