小编thi*_*him的帖子

在gdb - C++中打印流值

我试图看到stream的值(ifstream,但它应该适用于所有类型的流我猜).示例代码可能如下所示:

stringstream in("One Two Three Four Five");
while(in)
cout << in;
Run Code Online (Sandbox Code Playgroud)

我试图通过以下方式来做,但它们似乎都不起作用:

(gdb) print in
(gdb) call cout << in
(gdb) call in.getline()
Run Code Online (Sandbox Code Playgroud)

... 等等.

有什么办法可以看到流的价值吗?

c++ gdb stream

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

在bash中重定向stdout与使用fprintf(速度)在c中写入文件

我想知道哪个选项基本上更快.

最让我感兴趣的是重定向机制.我怀疑文件在程序开始时打开,./program > file并在最后关闭.因此,每当程序输出一些东西时,它应该只是写入文件,就像听起来一样简单.是这样吗?然后我猜两种选择在速度方面都应该具有可比性.

或者它可能是一个更复杂的过程,因为操作系统必须执行更多操作?

c bash printf stdout

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

阿达:四舍五入的整数

我的操作很麻烦,看起来很简单.我愿意圆商.我知道I : Integer := A/B,(其中A和B是整数)返回楼层.但是我想获得上限.我一直试图玩,'Ceiling 'Round 'Rounding但它们似乎都没有工作(大多数时候它甚至没有编译).我希望能有一个快速的答案,一个优雅的(可以写它没有十几种类型的转换)解决方案; D

ada

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

Ada - 动态重新分配阵列

我正在尝试编写一个基于数组的堆栈,可以动态地重新分配.我遇到的主要问题是如何实现调整数组大小的过程.在C++中它可能看起来像这样:

template<class T, int incr>
void Vector<T, incr>::inflate(int increase) {
    const int tsz = sizeof(T*);
    T** st = new T*[quantity + increase];
    memset(st, 0, (quantity + increase) * tsz);
    memcpy(st, storage, quantity * tsz);
    quantity += increase;
    delete []storage;
    storage = st;
}
Run Code Online (Sandbox Code Playgroud)

在哪里int quantity;T** storage;在私人部分宣布.

如果有人可以与我分享一些样品,我将非常感激.我试图通过Ada.Containers.Vectors的实现来看看,但是......它是big = P.

到目前为止,我已经做了这个Vector.ads任何人都可以帮忙吗?

arrays memory-management ada dynamic

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

标签 统计

ada ×2

arrays ×1

bash ×1

c ×1

c++ ×1

dynamic ×1

gdb ×1

memory-management ×1

printf ×1

stdout ×1

stream ×1