怎么清除空格和回车呢?()
如何清除空格和回车呢?(在线等)
我的代码如下,在主程序下运行到输入操作编号时就不由人输出,而是直接跳过了!
我的代码如下,在主程序下运行到输入操作编号时就不由人输出,而是直接跳过了!
#include <stdio.h>
#include <string.h>
#define MAX_USER_COUNT 10 // 一个至多为10个用户的文件系统
#define MAX_SAVED_FILE_COUNT 10 // 每次用户至多保存10个文件
#define MAX_OPEN_FILE_COUNT 5 // 一次运行用户至多可以打开5个文件
// 文件操作权限枚举
typedef enum
{
CanReadWrite=1, // 可进行读写执行操作
NoReadWrite = 0, // 不可进行读写执行操作
}Access;
//
//UFD用户文件目录
typedef struct
{
char fileName[40]; // 文件名
Access accessType; // 文件保护码
}FileDirectory;
typedef struct
{
FileDirectory file[MAX_SAVED_FILE_COUNT];
int length; // 用户文件目录的长度
}UserFileDirectory;
//
// MFD主目录结构
typedef struct
{
char userName[40]; // 用户名
UserFileDirectory *pUFD;// 指向该用户下的文件目录的首地址
}MainFileDirectory;
// AFD打开文件目录,即运行文件目录
typedef struct
{
char fileName[40]; // 打开的文件名
int type; // 文件的状态,1表示可以用,0表示已经删除
}AccessFileDirectory;
MainFileDirectory MFD[MAX_USER_COUNT];
AccessFileDirectory AFD[MAX_OPEN_FILE_COUNT];
UserFileDirectory UFD[MAX_SAVED_FILE_COUNT];
int afdCount = 0; // 当前已经打开的文件的个数
int mfdCount = 0;
int ufdIndex = 0;
void Init()
{
int i, j;
freopen("test.txt", "r", stdin);
for (i = 0; i < MAX_USER_COUNT; i++)
{
// 读入用户名
scanf("%s", MFD[i].userName);
// 读入该用户名下的文件目录信息
for (j = 0; j < MAX_SAVED_FILE_COUNT; j++)
{
scanf("%s%d", UFD[i].file[j].fileName, &UFD[i].file[j].accessType);
getchar();
}
getchar();
UFD[i].length = MAX_SAVED_FILE_COUNT;
MFD[i].pUFD = &UFD[i];
}
mfdCount = MAX_USER_COUNT;
fclose(stdin);
}
void InitAFD()
{
printf("输入要打开的文件名:\n");
scanf("%s", AFD[afdCount++].fileName);
}
void DisplayUFD(UserFileDirectory *pUFD)
{
int i = 0;
if (pUFD)
{
while (i < pUFD->length)
{
printf("文件名:%s 文件保护码:%d\n", pUFD->file[i].fileName, pUFD->file[i].accessType);
i++;
}
}
}
void Menu()
{
printf("\n*******************文件操作类型************************\n");
printf("* 1、Create文件 *\n");
printf("* 2、Delete文件 *\n");
printf("* 3、Open文件 *\n");