文件建立索引列表

来源:互联网 发布:泰莎法米加社交软件 编辑:程序博客网 时间:2024/05/17 23:16

 

#include <stdio.h>
#include <stdlib.h>
#define MAX_LENGTH 40
#define MAX_FILE_LENGTH 255
#define GET_NAME "%255s"
int main(void)
{
 unsigned int i, l;
 int select_value;
 char exit_switch = 1;
 char *p_list[MAX_LENGTH];
 char f_list[MAX_LENGTH][MAX_FILE_LENGTH + 1];
 for (i = 0; i < MAX_LENGTH; i++){
  p_list[i] = NULL;
  f_list[i][0] = 0;
 }
 unsigned int j;
 char *p_temp;
 l = 0;
 do {
  puts("请选择操作命令:");
  puts("(1)添加新文件");
  puts("(2)删除列表中的文件");
  puts("(3)打印播放列表");
  puts("(4)退出程序");
  puts("(5)按名称排序");
  if(scanf("%1d", &select_value)) {
   switch (select_value) {
   case 1: {
    if (l < MAX_LENGTH){
     puts("请输入的文件名:");
     for(i = 0; i < MAX_LENGTH; i++){
      if(!f_list[i][0]){
       while (!scanf(GET_NAME, f_list[i])){
        puts("请输入正确的文件名!");
       }
       p_list[l++] = f_list[i];
       break;
      }
     }
    }
    else {
     puts("文件列表已满!");
    }
    break;
   }
   case 2: {
    puts("请输入文件编号:");
    scanf("%u", &i);
    if(i > 0 && i <= l) {
     *p_list[--i] = 0;
     do {
      p_list[i] = p_list[i + 1];
      i++;
     } while(i < l - 1);
     l--;
    }
    else
     puts("您所输入的文件编号不存在!");
    break;
   }
   case 3: {
    for(i = 0; i < l; i++)
     printf("%d : %s\n", i + 1, p_list[i]);
    break;
   }
   case 4: {
    exit_switch = 0;
    break;
   }
   case 5: {
    if (l > 1) {
     for(i = 0; i < l - 1; i++) {
      for(j = i + 1; j < l; j++) {
       if (*p_list[i] > *p_list[j]) {
        p_temp = p_list[i];
        p_list[i] = p_list[j];
        p_list[j] = p_temp;
       }
      }
     }
    }
    break;
   }
   }
  }

 } while(exit_switch);
 return EXIT_SUCCESS;
}