小编jxh*_*jxh的帖子

我如何使用此调试宏?

using namespace std;
#ifdef DEBUG
     #define debug(args...)            {dbg,args; cerr<<endl;}
#else
     #define debug(args...)              // Just strip off all debug tokens
#endif

struct debugger
{
    template<typename T> debugger& operator , (const T& v)
    {    
        cerr<<v<<" ";    
        return *this;    
    }
} dbg;


int main(){
    int a=1,b=2,c=3;
    debugger(a,b,c);
}
Run Code Online (Sandbox Code Playgroud)

我找到了这个调试宏,我正在尝试使用它,但这不起作用.我收到以下错误:

ubuntu:~ g++ -DEBUG a.cpp -o a
a.cpp: In function ‘int main()’:
a.cpp:81:16: error: no matching function for call to ‘debugger::debugger(int&, int&, int&)’
a.cpp:81:16: note: candidates are:
a.cpp:62:8: note: debugger::debugger()
a.cpp:62:8: note:   candidate expects 0 …
Run Code Online (Sandbox Code Playgroud)

c++ macros

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

变量函数 - 如何获取var_args的数量?

这可以完成吗?有没有,例如,某种va_num_args

基本上,我以prinf()类似的方式在串行端口上记录事件,采用格式字符串,并且可选地,使用一些参数.我想知道是否存在任何此类选项参数.

我可以区分Trace("No paramters here");Trace("forty two = %d", 43 - 1);吗?

c variadic-functions

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

通过动态内存管理防止自动变量破坏

根据我的理解,动态内存分配可用于控制对象的生命周期.当我" "一个对象时,它会在堆中保留在内存中,直到我删除它为止.

现在,有时情况并非那么简单.情况就是这种情况,我希望保留一定的内存块,直到我释放它,防止破坏该内存块中的数据.例如,我想将指向堆栈上分配的对象的指针插入到向量中.只要指向对象的指针位于该向量中,指针指向的对象就不会被销毁.这是出于安全原因.如何实现这一点,使用动态内存分配保留一块内存?

c++ dynamic

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

逐字逐句地读取文件

我有一个自定义存档结构如下:

%list% name1 name2 name3 %list%

%dirs% archive directories %dirs%

%content% name1 path1 content of file1 %content%
%content% name2 path2 content of file2 %content%
%content% name3 path3 content of file3 %content%
Run Code Online (Sandbox Code Playgroud)

%list%包含存档中文件的名称
%dirs%包含目录名称
%content%列出文件内容.

由于我需要打印指定文件的内容,我想逐字阅读此存档,以便识别%content%标签和文件名.
我知道它的存在fscanf(),但只有你知道存档模式它似乎才有效.

是否有C库或命令,如ifstreamC++,允许我逐字阅读?

谢谢

c file scanf

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

内存分配错误 - malloc:无法将void*转换为结构指针

我收到了这个错误 error C2440: '=' : cannot convert from 'void *' to 'TrackedObj *'

我的TrackedObj结构如下所示:

typedef struct {
    IplImage* hsv;    
    IplImage* hue;    
    IplImage* mask;   
    IplImage* prob;    
    CvHistogram* hist; 
    CvRect prev_rect;  
    CvBox2D curr_box;  
} TrackedObj; 
Run Code Online (Sandbox Code Playgroud)

我的代码:

TrackedObj *obj ;
obj = malloc(sizeof *obj) ;       
Run Code Online (Sandbox Code Playgroud)

malloc memory-management visual-c++

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

jsp:点击html链接时删除文件

我想在点击jsp页面中的HTML链接后删除文件.

以下是我的jsp代码:

<%
File f=new File("c:\\Folder\\1.jpg");
f.delete();
%>
Run Code Online (Sandbox Code Playgroud)

href应该在HTML代码中使用什么?

<a href......>Delete me </a>
Run Code Online (Sandbox Code Playgroud)

java jsp servlets

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

所有适当除数的总和

我已经解决了一个问题:
给定一个自然数n(1 <= n <= 500000),请输出所有适当除数的总和.

定义:自然数的适当除数是严格小于数的除数.

例如,数字20有5个适当的除数:1,2,4,5,10,除数求和为:1 + 2 + 4 + 5 + 10 = 22.

输入

一个整数,表示测试用例的数量(大约等于200000),后面跟着许多行,每个行包含1到500000之间的一个整数.

产量

每行一个整数:分别给出的整数的除数和.

样本输入:

3
2
10
20

样本输出:

1
8
22

我的代码如下:

/* @BEGIN_OF_SOURCE_CODE */

#include <stdio.h>
#include <stdlib.h>

    int main(int argc, const char * argv[])
    {
        int sum = 0,
        cases = 0,
        i, j, buff;

        scanf("%d", &cases); //Number of tests


        int *n;
        n = (int*) malloc(cases * sizeof(int)); //Defining array for numbers to be tested///////

        for (i …
Run Code Online (Sandbox Code Playgroud)

c performance

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

用C++编写状态机

我正在尝试基于口香糖球机对状态机进行编码.我有一个基本状态的接口类,而我有使用此接口的特定状态.我有四个状态no_quarter,has_quarter,sold,和sold_out状态.我还有一个gumball机器类来处理这些状态,根据我的机器所处的状态,它将进入该类并执行所需的操作.这是我的代码有问题,我也会发布我的功能.

Gumball_Machine.h

class Gumball_Machine
{
private:
    int gumball_count;
    State *current_state;
    No_Quarter_State *nqs;
    Has_Quarter_State *hqs;
    Sold_State *ss;
    Sold_Out_State *sos;

public:

    Gumball_Machine(int inventory)
    {
        gumball_count = inventory;
        nqs = new No_Quarter_State(this);
        hqs = new Has_Quarter_State(this);
        ss = new Sold_State(this);
        sos = new Sold_Out_State(this);
        if (gumball_count == 0)
            set_state(sos);
        else
            set_state(nqs);
    }

    void insert_quarter()
    {
        current_state->insert_quarter();
    }

    void eject_quarter()
    {
        current_state->eject_quarter();
    }

    void turn_crank()
    {
        current_state->turn_crank();
    }

    void dispense()
    {
        current_state->dispense();
    }

    void set_state(State *new_state) …
Run Code Online (Sandbox Code Playgroud)

c++ codeblocks

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

两个具有相同编号的构造函数.参数但不同的数据类型

在这里,当我运行下面的代码时,我得到called输出,我想知道为什么不called new.因为1来自两个shortint范围.

public class MyClass {

        private int x;

        public MyClass(){
            this(1);
        }

        public MyClass(int x){
            System.out.println("called");
            this.x = x;
        }

       public MyClass(short y){
            System.out.println("called new");
            this.x = y;
        }

        public static void main(String args[]) {
        MyClass m = new MyClass();
            System.out.println("hello");
        }
    }
Run Code Online (Sandbox Code Playgroud)

java multiple-constructors

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

多个cpp文件中的一个头文件:多个定义

我正在尝试访问多个 C++ 文件中的一个头文件。头文件定义如下:

#ifndef UTILS
#define UTILS

void toUpper(string &str) {
    for(unsigned int i=0; i<str.length(); i++) {
            str.at(i) = toupper(str.at(i));
    }
}

void toLower(string &str) {
    for(unsigned int i=0; i<str.length(); i++) {
            str.at(i) = tolower(str.at(i));
    }
}


#endif // UTILS
Run Code Online (Sandbox Code Playgroud)

当我编译代码时,出现以下错误: 在此输入图像描述

据我所知,这不应该返回多个定义,因为我限制代码被定义多次。我还尝试使用预编译指令“#pragma Once”

c++ one-definition-rule inline-functions

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