CStringArray 无 =重载

class CStringMatrix
{
protected:
CArray m_stringMatrix;
public:
CStringMatrix(void);
~CStringMatrix(void);

const CString & GetAt(UINT nRow, UINT nCol);
void SetAt(const CString& szCell, UINT nRow, UINT nCol);
void AddRow(UINT nRow, CStringArray & stringRow);

};

//注释一行报错
void CStringMatrix::SetAt(const CString& szCell, UINT nRow, UINT nCol)
{
CStringArray &stringRow = m_stringMatrix.GetAt(nRow);
stringRow.SetAtGrow(nCol,szCell);
//m_stringMatrix.SetAtGrow(nRow, stringRow);
}

//报错信息如下
1>d:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxcoll.h(590) : error C2248: “CObject::operator =”: 无法访问 private 成员(在“CObject”类中声明)
1> d:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afx.h(562) : 参见“CObject::operator =”的声明
1> d:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afx.h(532) : 参见“CObject”的声明
此诊断出现在编译器生成的函数“CStringArray &CStringArray::operator =(const CStringArray &)”中

1个回答

你不能访问私有成员,你自己是否实现operator =

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【菜鸟】CStringList和CStringList作为类成员变量,使用问题
想存储字符串组,在程序dlg类中添加成员变量CStringList m_str,(仅添加了该变量,未使用)程序结束时,出题书,无法处理的异常。 添加成员变量CStringArray m_str,在程序运行开始就会提示,无法处理的异常。 新手一个不知道什么原因,希望各位能多帮助
vs2010 MFC 求处理txt文本文件的后1000个字符的代码。
我这里有一个软件会产生txt格式的记录文件,大小几兆的样子,十几万行,每行100左右个字符。 这个记录文件的内容是随时变化的。 我想在ontimer响应函数(不要回调)内用cstudiofile每隔1秒钟读一次这个txt文件。 并取文件的末尾**大约**50行放到cstringarray内,然后处理。 为了尽量在1秒内提取+处理完,请给出尽可能高效的**提取代码**, 最好能加入:预防某次的提取+处理超过1秒的情况, 因为我感觉超过1秒,本次处理会被下次ontime函数强制中断。谢谢。 我想先定位到文件末尾,取文件末尾位置。然后从末尾-5000的位置开始readstring,舍掉第一次readstring可能读到的半行。是否可行?
字符串数组排重处理方法
MFC中CStringArray字符串数组排重怎么处理?不要求对字符串数组进行排序,只是排除字符串中的重复数据就好。
如何把Cstring类型所定义的类型数据导入到Excel
//导出EXCEL void CDlgPtInst::ExportYqybExcel() { for (int i = 0; i < m_Grid.GetRowCount(); i++) { for (int j = 0;j<m_Grid.GetColumnCount();j++) { CString str; str = m_Grid.GetItemText(i, j); } }//数据已经读取到了请问如何导入到Excel中 CStringArray strArray; strArray.Add("1"); strArray.Add("2"); strArray.Add("3"); strArray.Add("4"); CStringArray strArrayName; strArrayName.Add("第一列");//这里是写死的部分 strArrayName.Add("第二列"); strArrayName.Add("第三列"); strArrayName.Add("第四列"); strArrayName.Add("第五列"); strArrayName.Add("第六列"); CString strPath = "D:\\666.xls"; CReadExcel cRead(strPath,"666"); cRead.AddHeaders(strArrayName); cRead.AddRow(strArray); cRead.Commit(); }
MFC StringArray add出错
![图片说明](https://img-ask.csdn.net/upload/201610/27/1477551250_399829.png) KERNELBASE! 769522a1() _CrtDbgReport(int 2, const char * 0x1024e184 `string', int 1017, const char * 0x00000000, const char * 0x1024e080 `string') line 353 _free_dbg_lk(void * 0x01f45f20, int 1) line 1017 + 74 bytes _free_dbg(void * 0x01f45f20, int 1) line 970 + 13 bytes operator delete(void * 0x01f45f20) line 351 + 12 bytes CStringArray::SetSize(int 34, int -1) line 167 + 18 bytes CStringArray::SetAtGrow(int 33, const CString & {"输出通道3连接中断..."}) line 243 CStringArray::Add(const CString & {"输出通道3连接中断..."}) line 247 ShowAndWriteAlarmInfo(CString & {"输出通道3连接中断..."}) line 200 CIoCnt::SetIconState(int 0) line 301 + 9 bytes CNetTcpCnt::ReConnect() line 202 + 21 bytes CIoCnt::ReConnect() line 261 CIoCnt::Send(char * 0x07b2edd0, int 2000) line 242 CIoCnt::DoData() line 106 + 22 bytes CSendThread::SingleStep() line 69 + 19 bytes CXThread::InitInstance() line 69 + 16 bytes CSendThread::InitInstance() line 40 _AfxThreadEntry(void * 0x0018ef18) line 116 + 13 bytes _threadstartex(void * 0x01f40da0) line 212 + 13 bytes KERNEL32! 762933ca() NTDLL! 77b19ed2() NTDLL! 77b19ea5() 程序多次调用下面函数,前面没出错,后面调用时执行到Add()程序崩溃了 StringArray _LogStrAry; void ShowAndWriteAlarmInfo(CString &AlarmInfo) { CString temp; int nSize = _LogStrAry.GetSize() ; if (nSize > 50) //多于50条就扔掉 { /// modified by tim 2006.09.07 for 删除数组中数据时,必须防止和写log的线程冲突 //_LogStrAry.RemoveAll() ; _LogCritical.Lock() ; _LogStrAry.RemoveAll() ; _LogCritical.Unlock() ; //// end } temp.Empty(); temp =AlarmInfo; _LogStrAry.Add(temp) ; //将报警信息装入报警序列中 }
关于VS2005对SqlServer数据库操作的问题
对数据库Student进行查询时运行到msado.tli文件中的下面这个函数中的raw_Open时就崩溃掉。 ``` inline HRESULT Recordset15::Open ( const _variant_t & Source, const _variant_t & ActiveConnection, enum CursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options ) { HRESULT _hr = raw_Open(Source, ActiveConnection, CursorType, LockType, Options); if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); return _hr; } ``` 调用代码: ``` CString strsql = _T("select * from LoginInfo where Name='"); strsql+=name; strsql+="' and Password='"; strsql+=psw; strsql+="'"; MessageBox(hwnd, strsql, _T("查询字符串"), MB_OK); CString strcolumn[6] = {_T("Name"),_T("Sex"),_T("Password"),_T("School"),_T("Major"),_T("Number")}; int ncolumn = 6; CStringArray strvalue; theApp.m_dao.GetData(strsql,strcolumn,ncolumn,strvalue); ``` ``` BOOL CDao::GetData(CString strSql,CString *strQueryCloum,int nCloumNum,CStringArray& strDataValue) { HRESULT het; //_bstr_t 字符串 _variant_t 多种数据类型集合 vt类型 ..value值 //com _bstr_t bstrSql = strSql; //执行sql _bstr_t bstrConnect = m_strConnect; //连库串 _bstr_t bstrQueryCloum; //列名 Fields *fields; FieldPtr fieldPtr; CString strValue; _variant_t varBLOB; try { //1.打开表 /*m_pRecordset->Open(查询SQL语句,连接串,打开方式,数据源更新时如何锁定结果集,以什么形式传入) 打开方式: adOpenUnspecified = -1, 默认的方式打开 adOpenForwardOnly = 0, 向前移动的游标打开 adOpenKeyset = 1, 以键值打开 adOpenDynamic = 2, 当你添加数据时别人也有可能往这个表添加数据,谁在前谁添加到前面(多人用数据库时) adOpenStatic = 3 别人也想往里面添加数据一直停留在打开时候 锁定结果集方式: adLockReadOnly = 1, 只读的不能改变数据 adLockPessimistic = 2, (保守式锁定)逐个 – 编辑时立即锁定数据源的纪录 adLockOptimistic = 3, (开放式锁定)逐个 – 只在调用update方法时才锁定纪录 adLockBatchOptimistic = 4 开方式 可以更新一批数据更新模式 + bstrConnect {"Driver={SQL Native Client};Server=192.168.1.92,2433;Uid=sa;Pwd=sa;Database=colin0716" (1)} _bstr_t + bstrSql {"select * from student" (1)} _bstr_t */ het = m_pRecordset->Open(bstrSql,bstrConnect,adOpenDynamic,adLockOptimistic,adCmdText); if (!SUCCEEDED(het)) { AfxMessageBox(_T("打开表失败")); m_strErrorMsg = _T("查询表失败"); return FALSE; } //循环结果 while(!m_pRecordset->ADOEOF) { //按行遍历 for(int i=0;i<nCloumNum;i++) { bstrQueryCloum = strQueryCloum[i]; fields = m_pRecordset->GetFields(); //fields 结果集中的字段集合。由于一行记录中可以包含多个字段,因此fileds属性是一个数组形式,数组中每一个元素代表一个字段 fieldPtr = fields->GetItem(bstrQueryCloum);//field对象表示记录集中数据的某个单独的列。 varBLOB = fieldPtr->GetValue();//获得当前列的值 //long nSize =fieldPtr->ActualSize; //注意图片名称必须为图片流的前一个字段 //strValue = DataToCStringType(varBLOB,nSize,strValue); strValue = DataToCStringType(varBLOB); strDataValue.Add(strValue); //varBLOB.Detach(); } m_pRecordset->MoveNext(); } m_pRecordset->Close(); } catch(_com_error *e) { m_strErrorMsg = e->ErrorMessage(); AfxMessageBox(e->ErrorMessage()); } return TRUE; } ``` 那个_hr是总是返回E_FAIL,然后return的时候就崩溃掉。 这几天在写一个对数据库操作的项目,但是这几天被这个问题给卡住了,实在是找不到如何解决了,还请各位大神指点迷津。![图片说明](https://img-ask.csdn.net/upload/201507/21/1437472591_187681.png)
mfc,下面这个函数有什么问题吗?
为什么经常在dest.add(strtmp)时,程序异常退出,无任何提示? void Split(CString source, CString division, CStringArray& dest) { dest.RemoveAll(); int pos =0; int pre_pos =0; int dlen=division.GetLength(); CString strtmp; while( -1!= pos ){ pre_pos = pos; pos = source.Find(division,pos); if(pos>=0 ){ strtmp=source.Mid(pre_pos,(pos-pre_pos)); //strtmp.ReleaseBuffer(); if(strtmp.GetLength()>0){ //MessageBox(NULL,strtmp,"字符串add前",0); ## dest.Add(strtmp); //MessageBox(NULL,strtmp,"字符串add后",0); } pos+=dlen; } else{ pos=source.GetLength(); if(pos>pre_pos){ strtmp=source.Mid(pre_pos,(pos-pre_pos)); //MessageBox(NULL,strtmp,"最后字符串",0); if(strtmp.GetLength()>0) dest.Add(strtmp); } pos=-1; } } }
关于VC6.0中,CWebPage与JaveScript交互的问题
我是将网上下载的版本进行了修改 本来是在一张地图上四个点依次连线,我去掉了后两个点,只想让它两点连成一线 VC中的相关代码如下: ``` void CTest_mapDlg::OnPolyline() { // TODO: Add your control notification handler code here CComVariant varResult; //存放返回值 CStringArray polyline; UpdateData(true); polyline.Add(m_polyline_lat1); polyline.Add(m_polyline_lng1); polyline.Add(m_polyline_lat2); polyline.Add(m_polyline_lng2); /* polyline.Add(m_polyline_lat3); polyline.Add(m_polyline_lng3); polyline.Add(m_polyline_lat4); polyline.Add(m_polyline_lng4); */ web.CallJScript("poly_line", polyline, &varResult); } ``` JScript中的相关代码如下: ``` var polyline; var linesArray = []; function poly_line(alt1, lng1, alt2, lng2) { var polyLinePos = [ new google.maps.LatLng(alt1, lng1), new google.maps.LatLng(alt2, lng2) // new google.maps.LatLng(alt3, lng3), // new google.maps.LatLng(alt4, lng4) ]; polyLine = new google.maps.Polyline({ path: polyLinePos, strokeColor: '#FF0000', strokeOpacity: 1.0, strokeWeight: 2 }); polyLine.setMap(map); linesArray.push(polyLine); map.setCenter(new google.maps.LatLng(alt2, lng2)); } ``` 运行的结果是划线时脚本错误,求问是什么原因?
C++代码转化为C#代码 求高手指点,写出注释谢谢啊
// scDlg.cpp : 实现文件 // #include "stdafx.h" #include "sc.h" #include "scDlg.h" #include ".\scdlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用于应用程序“关于”菜单项的 CAboutDlg 对话框 // CscDlg 对话框 CscDlg::CscDlg(CWnd* pParent /*=NULL*/) : CDialog(CscDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_strXin="a!dAA1$%^&IKMJNSD98574PO"; m_llNumber1=13693; m_llNumber2=113; } void CscDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO1, m_GameNumber); CString strTitle; strTitle.Format("数字3趣味游戏上分码计算"); SetWindowText(strTitle); ((CEdit*)GetDlgItem(IDC_EDIT_RANDOM))->SetLimitText(15); ((CEdit*)GetDlgItem(IDC_EDIT_ADDSCORE))->SetLimitText(7); ((CEdit*)GetDlgItem(IDC_EDIT_ADDGAME))->SetLimitText(5); } BEGIN_MESSAGE_MAP(CscDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, OnBnClickedOk) ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1) ON_CBN_SELCHANGE(IDC_COMBO1, OnCbnSelchangeCombo1) END_MESSAGE_MAP() // CscDlg 消息处理程序 BOOL CscDlg::OnInitDialog() { CDialog::OnInitDialog(); // 将\“关于\”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); //pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 InitGameName(); CFont * Font; Font = new CFont; Font->CreateFont( 16, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_BOLD, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut DEFAULT_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH|FF_SWISS, // nPitchAndFamily "黑体"); GetDlgItem(IDC_COMBO1)->SetFont(Font); GetDlgItem(IDC_EDIT_RANDOM)->SetFont(Font); GetDlgItem(IDC_EDIT_ADDSCORE)->SetFont(Font); GetDlgItem(IDC_EDIT_ADDGAME)->SetFont(Font); GetDlgItem(IDC_EDIT_ADDNUMBER)->SetFont(Font); return TRUE; // 除非设置了控件的焦点,否则返回 TRUE } void CscDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { /*CAboutDlg dlgAbout; dlgAbout.DoModal();*/ } else { CDialog::OnSysCommand(nID, lParam); } } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。 void CscDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } //当用户拖动最小化窗口时系统调用此函数取得光标显示。 HCURSOR CscDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } void CscDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 //OnOK(); if(!Validation()) { return; } ShowSYInfo(); GetNumber(); } void CscDlg::GetNumber() { GetDlgItemText(IDC_EDIT_RANDOM,m_strRandom); GetDlgItemText(IDC_EDIT_ADDSCORE,m_strAddscore); GetDlgItemText(IDC_EDIT_ADDGAME,m_strGame); GetDlgItemText(IDC_EDIT_ADDNUMBER,m_strAddNumber); if(m_strRandom=="") { AfxMessageBox("随机码不能为空"); return; } //1上分,2加场 //DMD5(MD5(分+随)+K,10)+DMD5(MD5(局+随)+K,10),后第4位是type,奇为上分,2为加场,0为两个都加 CString strKey=m_strArea+m_strXin; LONGLONG llAddScore=_atoi64(m_strAddscore); LONGLONG llAddGame=_atoi64(m_strGame); if(llAddScore%100!=0) { AfxMessageBox("请输入100的倍数"); return; } if(llAddScore==0&&llAddGame==0) { AfxMessageBox("分数和局数不能全为0"); return; } if(llAddScore>5000000) { AfxMessageBox("分数不能超过5000000"); return; } if(llAddGame>50000) { AfxMessageBox("场数不能超过50000"); return; } if(m_strRandom.GetLength()!=15) { AfxMessageBox("请输入15位的随机码"); return; } LONGLONG llRandom=_atoi64(m_strRandom); CString str1,str2,str3,str4,strTotal; str1.Format("%015I64u",llRandom+llAddScore); str1=MD5(str1)+strKey; str1=DigitalMD5(str1,10); str2.Format("%015I64u",llRandom+llAddGame); str2=MD5(str2)+strKey; str2=DigitalMD5(str2,10); if(llAddScore>0&&llAddGame<=0) { CString strT; str2=str2.Left(6)+"1"+str2.Right(3); } else if(llAddScore<=0&&llAddGame>0) { CString strT; str2=str2.Left(6)+"2"+str2.Right(3); } else { str2=str2.Left(6)+"0"+str2.Right(3); } m_strAddNumber=str1+str2; SetDlgItemText(IDC_EDIT_ADDNUMBER,m_strAddNumber); //UpdateWindow(); } CString CscDlg::MD5(CString str) { TCHAR sz[33]; CString strmd5; CMD5Encrypt::EncryptData(str,sz); strmd5=sz; return strmd5; } CString CscDlg::DigitalMD5(CString str,int Right) { CString strNumber; CString strMD5=MD5(str); static CRegexpT <char> regexp("[:^digit:]"); char *a=regexp.Replace(strMD5,""); strNumber=a; regexp.ReleaseString(a); if(Right!=0) { Right=min(strNumber.GetLength(),Right); strNumber=strNumber.Right(Right); LONGLONG llNumber=_atoi64(strNumber); strNumber.Format("%010I64u",llNumber); if(strNumber.GetLength()>Right) { strNumber.Right(Right); } } return strNumber; } void CscDlg::Search(CStringArray& dest) { dest.RemoveAll(); SHFILEINFO sfi; CFileFind* fileFind=new CFileFind(); BOOL res = fileFind->FindFile("*.liu"); int i=0; while(res) { res = fileFind->FindNextFile(); if(fileFind->IsDirectory()) { continue; } SHGetFileInfo(fileFind->GetFilePath(),0,&sfi,sizeof(sfi),SHGFI_ICON); dest.Add(fileFind->GetFileTitle()); i++; } } void CscDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 if(OpenClipboard())//打开剪切板 { EmptyClipboard();//清空剪切板,让当前窗口进程拥有剪切板 CString Str; GetDlgItemText(IDC_EDIT_ADDNUMBER,Str);//获取数据 HANDLE hClip; hClip=GlobalAlloc(GMEM_MOVEABLE,Str.GetLength()+1);//分配内存对象返回地址(该函数是系统从全局堆中分配内存) char *pBuf; pBuf=(char *)GlobalLock(hClip);//锁定全局内存中指定的内存块,并返回一个地址值,令其指向内存块的起始处 strcpy(pBuf,Str);//将Str对象中的数据Copy到内存空间中 GlobalUnlock(hClip);//解锁全局内存块 SetClipboardData(CF_TEXT,hClip);//设置剪贴板数据 CloseClipboard();//关闭 } } void CscDlg::InitGameName() { Search(m_strArrFileName); int nCount=m_strArrFileName.GetCount(); for(int i=0;i<nCount;i++) { m_GameNumber.AddString(_T(m_strArrFileName.GetAt(i))); } m_GameNumber.SetCurSel(0); int nIndex=m_GameNumber.GetCurSel(); m_strArea=m_strArrFileName.GetAt(nIndex); CString strFile=m_strArea+".liu"; OnOpenDocument(strFile); } void CscDlg::OnCbnSelchangeCombo1() { // TODO: 在此添加控件通知处理程序代码 int nIndex=m_GameNumber.GetCurSel(); m_strArea=m_strArrFileName.GetAt(nIndex); CString strFile=m_strArea+".liu"; OnOpenDocument(strFile); } BOOL CscDlg::OnOpenDocument(CString strFileName) { CStdioFile file; CString filePathName; int row; CString result; CString strLine,strTemp; row = 0; file.Open(strFileName,CFile::modeRead); while(file.ReadString(strLine)) { char *str = strLine.GetBufferSetLength(strLine.GetLength()); char *p; if(strLine!="") { for (p=strtok(str,";");p!=NULL;p=strtok(NULL,";")) { strTemp = p; result+=strTemp; } row ++; } } m_MD5File=result; return TRUE; } BOOL CscDlg::Validation() { //DMD5(MD5(机器号+AB)+m_strXin,10)+DMD5(m_strXin+机器号,10) CString strOK=DigitalMD5(MD5(m_strArea+"AB")+m_strXin,10)+DigitalMD5(m_strXin+m_strArea,10); //AfxMessageBox(strOK); if(strOK!=m_MD5File) { return FALSE; } else { return TRUE; } } BOOL CscDlg::ShowSYInfo() { CString strInfo; CString strRandom,strScore,strInnings; GetDlgItemText(IDC_EDIT_RANDOM,strRandom); strScore=(strRandom.Left(9)).Right(8); strInnings=(strRandom.Right(6)).Right(5); int nScoreWei=atoi((strRandom.Left(9)).Left(1)); int nInningsWei=atoi((strRandom.Right(6)).Left(1)); FLOAT fSYSocre=atof(strScore)/13.0f; FLOAT fSYInnings=atof(strInnings)/7.0f; if(((int)(fSYSocre*100)%100)!=0||((int)(fSYInnings*100)%100)!=0) { strInfo.Format("剩余分数:%d,剩余局数:%d",0,0); SetDlgItemText(IDC_STATIC_SY,strInfo); return FALSE; } int nSYSocre=atoi(strScore)/13-m_llNumber1; int nSYInnings=atoi(strInnings)/7-m_llNumber2; if(nSYSocre<0||nSYInnings<0) { strInfo.Format("剩余分数:%d,剩余局数:%d",0,0); SetDlgItemText(IDC_STATIC_SY,strInfo); return FALSE; } strInfo.Format("剩余分数:%d,剩余局数:%d",nSYSocre,nSYInnings); SetDlgItemText(IDC_STATIC_SY,strInfo); return TRUE; }
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
(接上文《源码阅读(18):Java中主要的Map结构——HashMap容器(中)》) 3.4.4、HashMap添加K-V键值对(红黑树方式) 上文我们介绍了在HashMap中table数组的某个索引位上,基于单向链表添加新的K-V键值对对象(HashMap.Node&lt;K, V&gt;类的实例),但是我们同时知道在某些的场景下,HashMap中table数据的某个索引位上,数据是按照红黑树
c++制作的植物大战僵尸,开源,一代二代结合游戏
    此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。 目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 万字申请,废话报告,魔幻形式主义大作怎么写?兄dei,狗屁不通文章生成器了解一下。这个富有灵魂的项目名吸引了众人的目光。项目仅仅诞生一周,便冲上了GitHub趋势榜榜首(Js中文网 -前端进阶资源教程)、是榜首哦
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
Spring Security 实战干货:基于注解的接口角色访问控制
1. 前言 欢迎阅读 Spring Security 实战干货[1] 系列文章 。在上一篇 基于配置的接口角色访问控制[2] 我们讲解了如何通过 javaConfig 的方式配置接口的角色访问控制。其实还有一种更加灵活的配置方式 基于注解 。今天我们就来探讨一下。DEMO 获取方式在文末。 2. Spring Security 方法安全 Spring Security 基于注解的安全...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。 背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法 不过,当我看了源代码之后 这程序不到50行 尽管我有多年的Python经验,但我竟然一时也没有看懂 当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
MySQL数据库总结
一、数据库简介 数据库(Database,DB)是按照数据结构来组织,存储和管理数据的仓库。 典型特征:数据的结构化、数据间的共享、减少数据的冗余度,数据的独立性。 关系型数据库:使用关系模型把数据组织到数据表(table)中。现实世界可以用数据来描述。 主流的关系型数据库产品:Oracle(Oracle)、DB2(IBM)、SQL Server(MS)、MySQL(Oracle)。 数据表:数...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片...
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问