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) 这可以完成吗?有没有,例如,某种va_num_args?
基本上,我以prinf()类似的方式在串行端口上记录事件,采用格式字符串,并且可选地,使用一些参数.我想知道是否存在任何此类选项参数.
我可以区分Trace("No paramters here");和Trace("forty two = %d", 43 - 1);吗?
根据我的理解,动态内存分配可用于控制对象的生命周期.当我" 新 "一个对象时,它会在堆中保留在内存中,直到我删除它为止.
现在,有时情况并非那么简单.情况就是这种情况,我希望保留一定的内存块,直到我释放它,防止破坏该内存块中的数据.例如,我想将指向堆栈上分配的对象的指针插入到向量中.只要指向对象的指针位于该向量中,指针指向的对象就不会被销毁.这是出于安全原因.如何实现这一点,使用动态内存分配保留一块内存?
我有一个自定义存档结构如下:
%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++,允许我逐字阅读?
谢谢
我收到了这个错误 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) 我想在点击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) 我已经解决了一个问题:
给定一个自然数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) 我正在尝试基于口香糖球机对状态机进行编码.我有一个基本状态的接口类,而我有使用此接口的特定状态.我有四个状态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) 在这里,当我运行下面的代码时,我得到called输出,我想知道为什么不called new.因为1来自两个short和int范围.
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) 我正在尝试访问多个 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++ ×4
c ×3
java ×2
codeblocks ×1
dynamic ×1
file ×1
jsp ×1
macros ×1
malloc ×1
performance ×1
scanf ×1
servlets ×1
visual-c++ ×1