📄 1.cpp
字号:
#include<iostream.h>
#include<windows.h>
void main()
{
unsigned char my_m;
HANDLE hFileMap = OpenFileMapping(FILE_MAP_WRITE,false, "my_file");
if(hFileMap == NULL)
{
cout<<"文件映射错! "<<endl;
return ;
}
HANDLE sp = CreateSemaphore(NULL,0,10,"my_sp");
HANDLE sm = CreateSemaphore(NULL,0,10,"my_sm");
HANDLE metux = CreateSemaphore(NULL,1,1,"my_mutex");
PVOID pvFile = MapViewOfFile(hFileMap,FILE_MAP_WRITE,0,0,0);
char* p=(char*)pvFile;
char arry[32];
char flag='y';
while(flag=='y')
{
cout<<"处理数据:"<<endl;
WaitForSingleObject(sm,INFINITE);
WaitForSingleObject(metux,INFINITE);
my_m=*(p+1);
strncpy(arry,p + 3 + my_m * 32, 32);
if(arry[0]>='a'&&arry[0]<='z')
arry[0]=arry[0]+'A'-'a';
for(int i=1;arry[i]!='\0';i++)
{
if(arry[i]>='A'&&arry[i]<='Z')
arry[i]=arry[i]+'a'-'A';
if(arry[i]==' ')
if(arry[i+1]==' ')
{
for(int j=i;arry[j]!='\0';j++)
arry[j]=arry[j+1];
i--;
}
}
for(i=1;arry[i]!='\0';i++)
{
if((arry[i]>'z'||arry[i]<'0'||(arry[i]<'@'&&arry[i]>'9')||(arry[i]>'Z'&&arry[i]<'a'))&&arry[i]!=','&&arry[i]!=' ')
arry[i]='.';
}
for(i=1;arry[i]!='\0';i++)
{
if(arry[i-1]=='.')
if(arry[i]>='a'&&arry[i]<='z')
arry[i]=arry[i]+'A'-'a';
}
strncpy(p + 3 + my_m * 32,arry, 32);
my_m=(my_m+1)%10;
*(p+1)=my_m;
ReleaseSemaphore(metux, 1, NULL);
ReleaseSemaphore(sp, 1, NULL);
cout<<"是否继续y/n:"<<endl;
cin>>flag;
}
UnmapViewOfFile(pvFile);
CloseHandle(hFileMap);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -