利用getche()函数不缓冲,带回显 的特点实现删除文件的确认功能。结合putchar('/b') ,实现一次只输入一个字符。代码如下。 #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(void) { char filename[20]; char confirm; char flag; puts("Enter the file name to delete: "); gets(filename); fprintf(stdout, "Are you sure to delete the file %s?/n", filename); do { puts("/nY to continue,N to cancel"); confirm = getche(); do { putchar('/b'); flag = getche(); if (flag != '/r') { putchar('/b'); putchar(flag); confirm = flag; } }while(flag != '/r'); }while(confirm!= 'Y' && confirm != 'y' && confirm != 'N' && confirm != 'n'); if (confirm == 'Y' || confirm == 'y') { if (remove(filename) == 0) fprintf(stdout, "The file %s has been deleted./n", filename); else fprintf(stderr, "Error deleting the file %s.May be the file do not exist./n", filename); } system("pause"); return 0; }