小编Ci3*_*Ci3的帖子

我可以为MemoryStream设置固定长度吗?

我正在BinaryWriter使用一个MemoryStream.

public class PacketWriter : BinaryWriter
{
    public PacketWriter(Opcode op) : base(CreateStream(op))
    {
        this.Write((ushort)op);
    }

    private static MemoryStream CreateStream(Opcode op) {
        return new MemoryStream(PacketSizes.Get(op));
    }

    public WriteCustomThing() {
        // Validate that MemoryStream has space?
        // Do all the stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,PacketWriter只要有可用空间(已经定义PacketSizes),我想使用write .如果没有可用空间,我想要抛出异常.MemoryStream如果你写过容量,似乎只是动态分配更多的空间,但我想要一个固定的容量.我是否可以在不需要每次检查长度的情况下实现此目的?到目前为止,我想到的唯一解决方案是覆盖所有Write方法BinaryWriter并比较长度,但这很烦人.

.net c#

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

在Eclipse for Android中查找tools/emulator.exe

我开始在Android中开发,但是我在使用Eclipse时遇到了一些问题.

我刚刚重新安装了当前的SDK,但在尝试向Eclipse显示路径时,我收到以下错误:

找不到C:\ Program Files(x86)... droid\android-sdk\tools\emulator.exe!

我很确定我找到了正确的文件夹..这到底发生了什么?我被告知新的SDK不会造成这个问题.

eclipse android

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

使用迭代器和向量进行段错误

我似乎在使用迭代器在向量中显示项目时遇到问题.可能,我只需要另一组眼睛来看它.

vector<string> tempVector;
vector<string>::iterator it;


it = tempVector.begin();
tempVector.push_back("1");
cout << *it;
Run Code Online (Sandbox Code Playgroud)

我知道这不是完整的代码,但它是唯一运行的部分.输出是段错误.迭代器是否指向向量的开头?我本以期待cout获得"1".

c++ vector

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

istream :: ignore()如何工作?

我一直在读这里的 istream :: ignore().我想我得到了它所做的功能的主要思想,但我已经看到了一些只接受使用这个函数的数字输入的例子,我不确定它为什么会起作用.

为什么这段代码会忽略除数字输入之外的所

#include <iostream>
#include <sstream>
#include <limits>

int main()
{
    std::istringstream input("1\n"
                             "some non-numeric input\n"
                             "2\n");
    for(;;) {
        int n;
        input >> n;

        if (input.eof() || input.bad()) {
            break;
        } else if (input.fail()) {
            input.clear(); // unset failbit
            input.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // skip bad input
        } else {
            std::cout << n << '\n';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我原以为istream :: ignore()会忽略由某个数字指定的任何和所有字符,直到分隔符为止.

c++

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

标签 统计

c++ ×2

.net ×1

android ×1

c# ×1

eclipse ×1

vector ×1