私は以下の問題があります。標準のistreamバッファをC++で読むには?
class foo{
private:
char* cod;
...
public:
foo();
void getVal();
...
}
をそうで、など:私は次のように、オブジェクトの「コード」を指すように意図char型のポインタである属性を持つクラスを実装する必要があります。 getVal()は標準のistreamからコードを取得し、コードを含むすべての情報を埋め込むメソッドです。問題は、オブジェクトを特定する「コード」が特定の文字数を超えることができないことです。これは、メソッドGETVAL()のためにカスタマイズされたバッファを使用せずに行う必要がありますので、私は次の操作を行うことはできません。
//suppose the maximum number of characters is 50
void foo::getVal()
{
char buffer[100];
cin >> buffer;
if (strlen(buffer) > 50) //I'm not sure this would work considering how the stream
of characters would be copied to buffer and how strlen
works, but suppose this tells me how long the stream of
characters was.
{
throw "Exception";
}
...
}
これは禁止されています。カスタマイズされたistreamやboostライブラリも使用できません。
私は、istreamが情報を簡単に保持する場所を見つけることができたと思っていましたが、私はそれを見つけることができません。私が見つけたのは、他の種類のストリームに言及していただけです。
これを実行できるのか、ストリームがバッファされた情報を保持するのか誰かに教えてください。
おかげ
あなたが欲しい特定の文字数を持っている場合、私はあなたが 'read'をしたいと思います方法。 –
ローカライズしすぎると投票を終了しました。制限は任意であり、現実世界には適用できません。 –
あなたは何をしようとしていますか?ストリームからコードを読み込みたいとします。コードの形式は何ですか? – user763305