C中可用的标准预定义MACRO __FILE__显示文件的完整路径.有没有办法缩短路径?我的意思是代替
/full/path/to/file.c
Run Code Online (Sandbox Code Playgroud)
我知道了
to/file.c
Run Code Online (Sandbox Code Playgroud)
要么
file.c
Run Code Online (Sandbox Code Playgroud) 什么是使用点{
和}
在一个case
声明?通常,无论case
语句中有多少行,都会执行所有行.这只是关于旧/新编译器的规则还是有背后的东西?
int a = 0;
switch (a) {
case 0:{
std::cout << "line1\n";
std::cout << "line2\n";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
和
int a = 0;
switch (a) {
case 0:
std::cout << "line1\n";
std::cout << "line2\n";
break;
}
Run Code Online (Sandbox Code Playgroud) hex()
python中的函数将前导字符0x
放在数字的前面.无论如何要告诉它不要把它们放?所以0xfa230
会fa230
.
代码是
import fileinput
f = open('hexa', 'w')
for line in fileinput.input(['pattern0.txt']):
f.write(hex(int(line)))
f.write('\n')
Run Code Online (Sandbox Code Playgroud) stdint.h和inttypes.h有什么区别?
如果没有使用它们,则无法识别uint64_t,但使用其中任何一个都是定义的类型.
我使用此命令查找具有给定模式的文件,然后将其重命名为其他内容
find . -name '*-GHBAG-*' -exec bash -c 'echo mv $0 ${0/GHBAG/stream-agg}' {} \;
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,我看到一些像这样的输出
mv ./report-GHBAG-1B ./report-stream-agg-1B
mv ./reoprt-GHBAG-0.5B ./report-stream-agg-0.5B
Run Code Online (Sandbox Code Playgroud)
但是最后,当我跑步时ls
,我看到了旧的文件名.
假设有一些具有这些结构的文件夹
/bench1/1cpu/p_0/image/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_1/image/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/2cpu/p_0/image/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_1/image/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
....
Run Code Online (Sandbox Code Playgroud)
我想要做的是scp
以下文件夹
/bench1/1cpu/p_0/image/
/bench1/1cpu/p_1/image/
/bench1/2cpu/p_0/image/
/bench1/2cpu/p_1/image/
Run Code Online (Sandbox Code Playgroud)
如您所见,我想以递归方式使用,scp
但不包括名为"fl_X"的所有文件夹.似乎scp没有这样的选择.
UPDATE scp没有这样的功能.相反,我使用以下命令
rsync -av --exclude 'fl_*' user@server:/my/dir
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它只传输文件夹列表!! 就像是ls -R
在构建gcc时,我收到此错误:
In file included from /usr/include/bits/errno.h:25,
from /usr/include/errno.h:36,
from ../.././gcc/tsystem.h:96,
from ../.././gcc/crtstuff.c:68:
/usr/include/linux/errno.h:4:23: error: asm/errno.h: No such file or directory
make[2]: *** [crtbegin.o] Error 1
make[2]: Leaving directory `/opt/gcc-4.1.2/host-x86_64-unknown-linux-gnu/gcc'
Run Code Online (Sandbox Code Playgroud)
我从源代码构建gcc 4.1.我想我必须安装build-essential
.但是在ubuntu 12.04中安装该软件包将自动下载并安装gcc 4.6,我不希望这样.
还有其他方法吗?
对于像这样的代码:
class foo {
protected:
int a;
public:
class bar {
public:
int getA() {return a;} // ERROR
};
foo()
: a (p->param)
};
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
invalid use of non-static data member 'foo::a'
Run Code Online (Sandbox Code Playgroud)
目前该变量a
在构造函数中初始化foo
.
如果我让它静止,那么它说:
error: 'int foo::a' is a static data member; it can only be initialized at its definition
Run Code Online (Sandbox Code Playgroud)
但是我想a
在构造函数中传递一个值.那么解决方案是什么?
假设我已经定义了这样一个类:
class foo {
private:
std::vector< int* > v;
public:
...
void bar1()
{
for (int i = 0; i < 10; i++) {
int *a = new int;
v.push_back( a );
}
};
void bar2()
{
std::vector< int >::iterator it = v.begin();
for ( ; it != v.end(); it++ )
std::cout << (*it);
v.clear();
}
};
Run Code Online (Sandbox Code Playgroud)
简而言之,我在向量中推回一些指针,稍后我清除向量.问题是,这段代码是否有内存泄漏?我的意思是通过清除向量,指针被正确删除?