小编her*_*ian的帖子

如何设置sscanf()忽略字符串开头的字符?

我有一个字符串如下

 char row[]="11/12/1999 foo:bar some data..... ms:12123343 hot:32";
Run Code Online (Sandbox Code Playgroud)

我想通过使用sscanf将'ms'val插入int变量.但我不知道如何配置ssscanf忽略行中的第一个数据.我试着打击但不做这个工作.

int i;
sscanf(row,".*ms:%d",i);
Run Code Online (Sandbox Code Playgroud)

c c++ scanf

3
推荐指数
1
解决办法
6625
查看次数

我需要一个用于c ++的项目的GUI

我需要一个GUI系统,其中包含:一个树列表,每个列表项链接到一个视图,当我点击一个项目时,打开下一步的视图,我想向每个视图插入一些网格.

我看到一个名为的示例示例:dockpanelsuite http://sourceforge.net/projects/dockpanelsuite/ 有一个资源管理器和多文档我认为我可以将其更改为我的要求.但这是在C#中,我需要C++中的东西.如果MFC中的样本相同,或者我可以将它们组合起来?性能和稳定性如何?谢谢herzl

c# c++ mfc

2
推荐指数
1
解决办法
260
查看次数

如何在std :: vector中找到一个对象

我有一个像下面这样的对象

 class MyClass{
   int a;
   double b;
 };
Run Code Online (Sandbox Code Playgroud)

 vector<MyClass> vMyClass;
Run Code Online (Sandbox Code Playgroud)

然后我想在vMyClass中搜索尝试使用算法函数:

 if( std::find(vMyClass.begin(), vMyClass.end(), aiField) == vMyClass.end())
Run Code Online (Sandbox Code Playgroud)

我也定义了 operator==

 int operator ==(Field &Left,Field &Right)
 {
    return memcmp(&Left,&Right,sizeof(Field));
 }
Run Code Online (Sandbox Code Playgroud)

要么

int operator ==(Field &Right)
{
    return memcmp(this,&Right,sizeof(Field));
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息.

1>c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\algorithm(40) : error C2678: binary '==' : no operator found which takes a left-hand operand of type 'MyClass' (or there is no acceptable conversion)
1>        C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\guiddef.h(192): could be 'int operator ==(const GUID &,const GUID …
Run Code Online (Sandbox Code Playgroud)

c++ vector std

2
推荐指数
2
解决办法
3731
查看次数

错误:c ++模板函数

嗨,我尝试在vc ++中构建一个tamplate函数,如下所示:

template<class _Fn0,class _Fn1>   void for_each(_Fn0 _Func0,_Fn1 _Func1)
{    
    _Func0(12);
    _Func1(12);

}
Run Code Online (Sandbox Code Playgroud)

当我使用_Func0/1这个全局函数时,这项工作正在顺利进行.

void aglobal(int a)
{
    a++;
}
for_each(aglobal,aglobal);
Run Code Online (Sandbox Code Playgroud)

但是当我使用memeber类函数时,我收到错误消息.

class A
{
public:
    void aa(int a)
    {
        a++;
    }
    void bb(int b)
    {
        b++;
    }
    void cc()
    {
        for_each(&A::aa,&A::bb);
    }
};
Run Code Online (Sandbox Code Playgroud)

错误C2064:term不计算为带1个参数的函数1>请参阅正在编译的函数模板实例化'void for_each(_Fn0,_Fn1)'的引用.

我该如何解决这个错误?

谢谢herzl.

c++ templates class

1
推荐指数
1
解决办法
140
查看次数

为什么在MFC中收到错误的消息而不是定时器消息?

我有一个继承自ClistCtrl的类ClistCtrlEx类.

我加

  • ON_WM_TIMER()到消息表
  • OnTimer功能

但在调用SetTimer函数程序之前,通过事件ID 45调用WM_TIMER消息,当我调用SetTimer时,根本不发送WM_TIMER.

我如何开始调试或解决问题?

c++ winapi mfc

1
推荐指数
1
解决办法
187
查看次数

当我删除std :: vector的成员时,为什么我的程序崩溃了

我有一个像下面这样的矢量

vector<unsigned int> myvector;
vector<unsigned int>::iterator it;

//fill it 
for (i=1; i<=10; i++) myvector.push_back(i);

//I want delete first one 
it = myvector.begin();
myvector.erase(it++);

//I want to know if I am in last element
if(it != myvector.end()) 
      cout << "a test";
Run Code Online (Sandbox Code Playgroud)

但在比较表达式中,我的程序崩溃了.为什么?

c++ stl

0
推荐指数
2
解决办法
3054
查看次数

如何从成员函数返回迭代器?

可能重复:
我必须在何处以及为何要使用"template"和"typename"关键字?

我有一个类似下面的模板类

  template <class Key, class Object>
  class  TObjectRegistery
  {
  public:
     typedef map<const Key,  Object*> ObjectMap;

     void AddObject(Object *obj){
        objectMap_[obj.code()] = obj;
     }
  private:
     ObjectMap  objectMap_;
     }
Run Code Online (Sandbox Code Playgroud)

我想在外面运行迭代TFactory,然后我想在类中添加两个成员函数.

  ObjectMap::iterator xbegin(){
     return objectMap_.begin();
  }
Run Code Online (Sandbox Code Playgroud)

但是我得到了一个我错过的错误; 在xbegin之前,像undefine ObjectMap :: iterator

  "missing ';' before identifier 'xbegin'"
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我该怎么办呢?如果这种好方法可以在课外进行迭代?

c++ stl

-3
推荐指数
1
解决办法
151
查看次数

标签 统计

c++ ×7

mfc ×2

stl ×2

c ×1

c# ×1

class ×1

scanf ×1

std ×1

templates ×1

vector ×1

winapi ×1