cposx5?

月宜 19 0

C++中如何创建文件和目录

如果是VC的话,文件操作如下:

文件打开:

char* pszFileName = "c:\\test\\myfile.dat";

CFile myFile;

CFileException fileException;

if ( !myFile.Open( pszFileName, CFile::modeCreate |

CFile::modeReadWrite, fileException ) )

{

TRACE( "Can't open file %s, error = %u\n",

pszFileName, fileException.m_cause );

}

文件读写:

char szBuffer[256];

UINT nActual = 0;

CFile myFile;

myFile.Write( szBuffer, sizeof( szBuffer ) );

myFile.Seek( 0, CFile::begin );

nActual = myFile.Read( szBuffer, sizeof( szBuffer ) );

关闭:

myFile.Close();

文件定位:

long offset = 1000; // 偏移量

long cpos; // 当前位置

cpos = myFile.Seek(offset,CFile::begin);

结果是cpos的值为1000

文件的查找

当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。

CString strFileTitle;

CFileFind finder;

BOOL bWorking = finder.FindFile("C:\\windows\\sysbkup\\*.cab");

while(bWorking)

{

bWorking=finder.FindNextFile();

strFileTitle=finder.GetFileTitle();

}

如果你要进行的文件操作只是简单的读写整行的字符串,我建议你使用CStdioFile,用它来进行此类操作非常方便,如下例。

CStdioFile mFile;

CFileException mExcept;

mFile.Open( "d:\\temp\\aa.bat", CFile::modeWrite, mExcept);

CString string="I am a string.";

mFile.WriteString(string);

mFile.Close();

关于C语言的问题,高手进

#include stdio.h

#include stdlib.h

#include string.h

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define OVERFLOW -2

typedef int Status;

#define IN99v_SIZE 100 //存储空间初始分配量

#define INCREMENT 30 //存储空间分配增量

#define MAXLEN 100//迷宫包括外墙最大行列数目

typedef struct{ //迷宫中row行col列的位置

int row;

int col;

}PostType;

typedef struct{

int ord; //当前位置在路径上的序号

PostType seat;//当前坐标

int di; //往下一坐标的方向

}SElemType; //栈元素类型

typedef struct{

SElemType* base;//栈基址,构造前销毁后为空

SElemType* top;//栈顶

int stackSize; //栈容量

}Stack; //栈类型

Status InitStack(Stack S){ //构造空栈s

S.base=(SElemType*)malloc(IN99v_SIZE *sizeof(SElemType));

if(!S.base)

exit(OVERFLOW);//存储分配失败

S.top=S.base;

S.stackSize=IN99v_SIZE;

return OK;

}//InitStack

Status StackEmpty(Stack S){

//若s为空返回TRUE,否则返回FALSE

if(S.top==S.base)

return TRUE;

return FALSE;

}//StackEmpty

Status Push(Stack S,SElemType e){

//插入元素e为新的栈顶元素

if(S.top-S.base =S.stackSize){//栈满,加空间

S.base=(SElemType *)realloc(S.base,(S.stackSize+INCREMENT)*sizeof(SElemType));

if(!S.base)

exit(OVERFLOW); //存储分配失败

S.top=S.base+S.stackSize;

S.stackSize+=INCREMENT;}

*S.top++=e;

return OK;

}//push

Status Pop(Stack S,SElemType e){//若栈不空删除栈//顶元素用e返回并返回OK,否则返回ERROR

if(S.top==S.base)

return ERROR;

e=*--S.top;

return OK;

}//Pop

Status DestroyStack(Stack S){//销毁栈S,

free(S.base);

S.top=S.base;

return OK;

}//DestroyStack..

typedef struct{

int row;

int col;

char adr[MAXLEN][MAXLEN];//可取' ''\001' '\002' '#'

}MazeType; //迷宫类型

Status InitMaze(MazeType maze){

//初始化迷宫若成功返回TRUE,否则返回FALSE

int m,n,i,j;

maze.row=0;

maze.col=0;

while(maze.row50 || maze.row5){

printf("请输入所要创建迷宫的行数:");

scanf("%d",maze.row); //迷宫行数

if(maze.row=50 || maze.row=5)

printf("行数必须是5-50之间的整数\n");

continue;

if(maze.row=50 maze.row=5)

break;}

while(maze.col50 || maze.col5){

printf("请输入所要创建迷宫的列数:");

scanf("%d",maze.col);

if(maze.col=50 || maze.col=5)

printf("列数必须是5-50之间的整数\n");

continue;

if(maze.col=50 maze.col=5)

break;}

for(i=0;i=maze.col+1;i++){//迷宫行外墙

maze.adr[0][i]='#';

maze.adr[maze.row+1][i]='#';}//for

for(i=0;i=maze.row+1;i++){//迷宫列外墙

maze.adr[i][0]='#';

maze.adr[i][maze.col+1]='#';}

for(i=1;i=maze.row;i++)

for(j=1;j=maze.col;j++)

maze.adr[i][j]=' ';//初始化迷宫

printf("下面请输入你的障碍坐标\n注:当设置好障碍坐标后,输入数字0 后结束。");

do{ printf("\n请输入障碍的横坐标: ");

scanf("%d",m);

if(m==0)break;

if(mmaze.row){

printf("输入的数不能超过最大行数\n");

continue;}

if(m0){

printf("输入的数不能比1小\n");

continue;}

printf("请输入障碍的纵坐标: ");

scanf("%d",n);

if(n==0)break;

if(nmaze.col){

printf("输入的数不能超过最大列数\n");

continue;}

if(n0){

printf("输入的数不能比1小\n");

continue;}

maze.adr[m][n]='#';//迷宫障碍用'#'标记

}while(m!=0||n!=0);//while

return OK;

}//InitMaze

Status Pass(MazeType maze,PostType curpos){

//当前位置可通则返回TURE,否则返回FALSE

if(maze.adr[curpos.row][curpos.col]==' ')//可通

return TRUE;

else

return FALSE;

}//Pass

Status FootPrint(MazeType maze,PostType curpos){

//若走过并且可通返回TRUE,否则返回FALSE

//在返回之前销毁栈S

maze.adr[curpos.row][curpos.col]='\001';//"\001"表示可通

return OK;

}//FootPrint

PostType NextPos(PostType curpos,int i){

//指示并返回下一位置的坐标

PostType cpos;

cpos=curpos;

switch(i){ //1.2.3.4分别表示东,南,西,北方向

case 1 : cpos.col+=1; break;

case 2 : cpos.row+=1; break;

case 3 : cpos.col-=1; break;

case 4 : cpos.row-=1; break;

default: exit(ERROR);}

return cpos;

}//Nextpos

Status MarkPrint(MazeType maze,PostType curpos){

//曾走过但不是通路标记并返回OK

maze.adr[curpos.row][curpos.col]='\002';//"\002"表示曾走过但不通

return OK;

}//MarkPrint

Status MazePath(MazeType maze,PostType start,PostType _end){

//若迷宫maze存在从入口start到_end的通道则求得一条存放在栈中

//并返回TRUE,否则返回FALSE

Stack S;

PostType curpos;

int curstep;//当前序号,1.2.3.4分别表示东,南,西,北方向

SElemType e;

InitStack(S);

curpos=start; //设置"当前位置"为"入口位置"

curstep=1; //探索第一步

do{

if(Pass(maze,curpos)){//当前位置可以通过,

//即是未曾走到过的通道

FootPrint(maze,curpos);//留下足迹

e.ord=curstep;

e.seat=curpos;

e.di=1;

Push(S,e); //加入路径

if(curpos.row==_end.row curpos.col==_end.col)

if(!DestroyStack(S))//销毁失败

exit(OVERFLOW);

else

return TRUE; //到达出口

else{

curpos=NextPos(curpos,1);

//下一位置是当前位置的东邻

curstep++; //探索下一步

}//else

}//if

else{ //当前位置不通

if(!StackEmpty(S)){

Pop(S,e);

while(e.di==4

!StackEmpty(S)){

MarkPrint(maze,e.seat);

Pop(S,e);

//留下不能通过的标记,并退一步

}//while

if(e.di 4){

e.di++;//换下一个方向探索

Push(S,e);

curpos=NextPos(e.seat,e.di);//设定当前位置是该

//新方向上的相邻

}//if

}//if

}//else

}while(!StackEmpty(S));

if(!DestroyStack(S))//销毁失败

exit(OVERFLOW);

else

return FALSE;

}//MazePath

void PrintMaze(MazeType maze){

//将标记路径信息的迷宫输出到终端(包括外墙)

int i,j;

printf("\n迷宫路径如下图所示:\n\n");

printf(" ");

for(i=0;i=maze.col+1;i++)//打印列数名

printf("%4d",i);

printf("\n\n");

for(i=0;i=maze.row+1;i++){

printf("%2d",i);//打印行名

for(j=0;j=maze.col+1;j++)

printf("%4c",maze.adr[i][j]);//输出迷宫//当前位置的标记

printf("\n\n");

}

}//PrintMaze

void main(){ //主函数

MazeType maze;

PostType start,_end;

char cmd;

do{ system("cls");

printf("##########################################################################\n");

printf("# #\n");

printf("# 迷宫求解 #\n");

printf("# #\n");

printf("# 姓名: 班级: 学号: #\n");

printf("# #\n");

printf("# #\n");

printf("# 欢迎使用 copy left #\n");

printf("# #\n");

printf("# #\n");

printf("##########################################################################\n");

if(!InitMaze(maze)){ //初始化并创建迷宫

printf("\nInitialization errors!!!\n");

exit(OVERFLOW); //初始化错误

}

do{ //输入迷宫入口坐标

printf("\n输入迷宫入口坐标: ");

scanf("%d%d",start.row,start.col);

if(start.rowmaze.row || start.row1|| start.colmaze.col || start.col1)

{ printf("\n入口错误!!!\n");

continue;}

}while(start.rowmaze.row || start.row1 || start.colmaze.col || start.col1);

do{ //输入迷宫出口坐标

printf("\n输入迷宫出口坐标: ");

scanf("%d%d",_end.row,_end.col);

if(_end.rowmaze.row || _end.row1 || _end.colmaze.col || _end.col1){

printf("\n出口错误!!!\n");

continue;}

}while(_end.rowmaze.row || _end.row1 || _end.colmaze.col || _end.col1);

if(!MazePath(maze,start,_end))//迷宫求解

printf("\n此路不通!!!\n");

else

PrintMaze(maze);//打印路径

printf("\n如果继续请输入y,退出请输入n: ");

scanf("%s",cmd);

}while(cmd=='y' || cmd=='Y');

}//main

迷宫求解问题用C++编写.

cpos是正规交易所吗

目前,中国政府尚未承认数字货币的法律地位。今年9月,央行、银监会和其他官方部门发布文件,禁止数字货币(代币、虚拟货币)在中国的交易和流通。因此,以比特币为代表的所谓“数字货币”是非法的,不能投资。技术只是一种科学方法。如果有人利用区块链进行非法集资等违法犯罪活动,必将受到法律制裁。从目前来看,几乎所有打着“区块链”旗号的投资项目都处于灰色地带。他们经常涉嫌诈骗、非法集资等违法犯罪活动。你必须保持警惕,不要被非法公司和人员的花言巧语所迷惑。

拓展资料:

CoinPOS (CPOS)是基于区块链的全球智能终端证券平台。CPOS交易节点就像我们传统的股票市场投资证券公司网点。未来,它们将遍布全球,成为区块链金融市场基础设施建设的关键环节。CoinPOS (CPOS)项目致力于利用区块链技术打造全球线下支付网络平台,并借助区块链技术打造区块链行业专业的智能终端“broker”,为用户提供线上到线下的整体解决方案。打造了移动智能终端CoinPOS经纪服务硬件、多资产数字钱包CPOSWallet等产品。通过智能硬件终端和冷热钱包,普通投资者可以轻松快捷地参与数字资产投资。

CPOS巨大的市场前景,逐渐吸引了越来越多的人参与,在全国各地逐渐建立起各种优质社区。强大的产品、庞大的共识群体、高品质的社区,为cpos打造生态场景奠定了坚实的基础,成为涨价的有力支撑,创造高品质的市场条件。

项目功能通过POS设备购买或销售加密货币;支持公用事业账单和其他离线加密货币支付;使用移动设备(如PayPal)进行点对点支付。对于那些不懂区块链甚至使用智能手机的老年人,CoinPOS也为他们提供了解决方案。CPOSPASS是一种多币卡,用于通过CoinPOS平台购买和出售合法和加密货币。CPOS卡还使用NFC和非接触式技术,通过卡中存储的加密货币进行支付。这些卡可以与移动数字钱包一起使用,也可以单独使用,也可以通过数字钱包用CPOSPASS卡给其他家庭成员充值。

求大神用Python解决下面这个。具体问题写在问题补充内

a = "aAsmr3idd4bgs7Dlsf9eAF"

b = list(filter(str.isalpha,a))

c = sorted(b,cmp=lambda x,y:1 if (x.upper()y.upper()) else -1)

print ''.join(c)

之前没看到要求5行内,现在四行搞定啦,其实还能缩到3行,不过影响美观,呵呵

我用vb作了个qq登陆框,登陆按钮怎么弄一样??

首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,

Name:LblBtn,

BorderStyle:1,

Appearance:0,

Alignment:2,

这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:

PrivateConstLBL_BACK_COLOR=HE0E0E0’正常时Label控件的背景色

PrivateConstLBL_WHEN_MOUSE_MOVE=HC0C0C0’鼠标移动时Label的背景色

PrivateConstLBL_WHEN_MOUSE_DOWN=H808080’鼠标按下时Label的背景色

再在Form的Load事件中输入以下内容

PrivateSubForm_Load()

DimCountAsInteger

ForCount=0To3’请将此出的3换成你的LblBtn数量的个数-1

LblBtn(Count).BackColor=LBL_BACK_COLOR’初始化LblBtn的背景

NextCount

EndSub

然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:

PrivateSubLblBtn_MouseDown(IndexAsInteger,ButtonAsInteger, ShiftAsInteger,XAsSingle,YAsSingle)’当鼠标按在LblBtn上时

LblBtn(Index).BackColor=LBL_WHEN_MOUSE_DOWN’临时改变LblBtn背景颜色

EndSub

PrivateSubLblBtn_MouseMove(IndexAsInteger,ButtonAsInteger, ShiftAsInteger,XAsSingle,YAsSingle)’鼠标在LblBtn上面移动时触发该事件

DimCountAsInteger

DoEvents’暂时将系统控制权教给系统

IfButtonThenExitSub’如果按钮被按下就退出该过程

ForCount=0To3

IfCountIndexThen’如果按下的不是其它按钮

LblBtn(Index).BackColor=LBL_BACK_COLOR’将背景设为正常

Else

LblBtn(Index).BackColor=LBL_WHEN_MOUSE_MOVE’将背景设为鼠标移 动的背景

EndIf

NextCount

EndSub

PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

DimCountAsInteger

DoEvents

ForCount=0To3

LblBtn(Count).BackColor=LBL_BACKCOLOR’恢复背景

NextCount

End

本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)

OK,Label控件就讲到这里,在来说说TextBox控件,

各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一TextBox拖到窗体上,属性设置如下

Appearance0

BorderStyle1

MutilLineTrue

千万不要设置ScrollBars属性,否则会影响效果在Form的Load事件中初始化TextBox

DimbkColorAsLong

PrivateSubForm_Load()

bkColor=RGB(235,235,235)

Text1.BackColor=bkColor

EndSub

在Form和Text1的MouseMove事件中:PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

Text1.BorderStyle=0

EndSub

PrivateSubText1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

DoEvents

Text1.BorderStyle=1

EndSub

在按下F5试试是不是很Cool?

可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,

首先声明:

PrivateTypePOINTAPI

xAsLong

yAsLong

EndType

PrivateDeclareFunctionGetCursorPosLib"user32"Alias"GetCursorPos"

(lpPointAsPOINTAPI)AsLongPrivateDeclareFunctionWindowFromPointLib"user32"Alias"WindowFrom

Point"(ByValxPointAsLong,ByValyPointAsLongAsLongPrivateDeclareFunctionSetFocusLib"user32"Alias"

SetFocus"(ByValhwndAsLong)AsLong

但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,

PrivateDeclareFunctionnSetFocusLib"user32"Alias"SetFocus"(ByValhwndAsLong)AsLong

只要Alias指向的接口是对的前面的函数名称简直就是摆设,在建立一个过程:

PublicFunctionsSetFocus()AsLong

DimCPosAsPOINTAPI,SuccessfullAsBoolean,hWndAsLong

DoEvents

Successfull=GetCursorPos(CPos)

IfNotSuccessfullThenExitSub’如果未成功则退出该过程

hWnd=WindowFromPoint(CPos.x,CPos.y)

sSetFocus=nSetFocus(hWnd)

EndSub

在窗体上放一个Timer控件,Interval属性设为100,就是0.1秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样?

可是有的先生小姐要问了,TextBox难道就不能用ScrollBar吗?非也非也,选工程-部件-MicrosoftWindowsCommonControls-26.0(SP3)就是你的答案,至于卷动TextBox就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体Webdings来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings

再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办?凡事都要请API来帮忙,这里需要两个API,一下是该API的声明:

PublicDeclareFunctionReleaseCaptureLib"user32"Alias"ReleaseCapture"()AsLong注释:这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,还有PublicDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong’这个该不要俺多介绍了吧

PublicConstHTCAPTION=2’代表窗体的标题区

PublicConstWM_NCLBUTTONDOWN=HA1’表示非工作区左键按下

原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:

PublicSubMoveForm(hWndAsLong)

DoEvents

ReleaseCapture

SendMessagehWnd,WM_NCLBUTTONDOWN,HTCAPTION,0

EndSub

在Form的MouseMove事件中:

PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

IfButton=vbLeftButtonThenMoveFormhWnd’如果按下鼠标左键就移动窗体

EndSub

台下的这位小姐又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为小姐推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,该控件需要在代码编辑区域内添加一下代码:

’一下声明是用在ToolSign的AutoQuit属性的

PublicConstEXIT_FORCE=2’注意,在VB中运行的时候如果选用此退出方式,VB也会退出

PublicConstEXIT_MESSAGE=1’由操作系统发送关闭消息

PublicConstEXIT_CUSTOM=Not(EXIT_FORCEOrEXIT_MESSAGE)’自定义

将其注册后在部件栏中把e-DogkidStudioToolsSign打钩,添加到工具箱中,双击加入到窗体中,在Form的Load事件中添加一下初始化代码:

PrivateSubForm_Load()

WithSign1

.AutoQuit=EXIT_CUSTOM

.ParentsHWND=hWnd’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码

EndWith

EndSub

Sign1的Click事件

PrivateSubSign1_Click()

End’关闭程序

EndSub

在Form的Resize事件中添加一下代码:

PrivateSubForm_Resize()

Sign1.Width=Width

EndSub

如果想让窗体可以改变大小,可以修改一下属性

Caption""

BorderStyle2或5

ControlBoxFalse

不知道各位看关见过爆炸试的窗体没有?,没有见过可以从俺要另外一个俺自己的ActiveXDLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程-引用-e-DogkidRuntimeLibrary

然后在窗体Load事件中输入:

PrivateSubForm_Load()

DimSystemAse_Dogkid_Runtime_Library.System

SetSystem=Newe_Dogkid_Runtime_Library.System

Show

System.BoomIthDC,60,Width,Height,Left,Top

SetSystem=Nothing

EndSub

对于cpos怎么使用和cposx5的总结分享本篇到此就结束了,不知你从中学到你需要的知识点没 ?如果还想了解更多这方面的内容,记得收藏关注本站后续更新。

标签: maze

抱歉,评论功能暂时关闭!