[過去ログ] スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
215: デフォルトの名無しさん [] 2016/01/20(水) 14:33:44.70 ID:7Lwquj6u(1/5) AAS
すみません実際にはgetlineで読み込んでいます
std::cin >> strでも同じ問題が起きたのでこのような例にしました。
実際には下のコードを書いています
std::string cmd, token;
while (std::getline(std::cin, cmd))
{
// 入力されたコマンドを入力ストリームとする
std::istringstream ss_cmd(cmd);
// 空白は読み飛ばしながら、tokenに代入
ss_cmd >> std::skipws >> token;
if (token == "")
{
//いろいろな処理
}
else if (token == ...
}
216(1): 207 [] 2016/01/20(水) 14:40:09.85 ID:7Lwquj6u(2/5) AAS
このプログラムでgetlineが実行され標準入力からの受付待ちになったとき
コピペしてあった4096文字以上の文字列を標準入力にペーストすると、4096文字目以降が途切れて表示されなくなってしまいます
それ以降キーボードから入力しても何も表示されず、受け付けてくれないようです
標準入力以外(ファイルストリーム)からの入力に変更することは仕様上できないので、なんとか標準入力の制限を取っ払う方法を調べていましたが、見つからずここで質問させていただきました
218: 207 [] 2016/01/20(水) 15:02:48.12 ID:7Lwquj6u(3/5) AAS
>>208 >>209 >>213
教えてくれてありがとう。詳しい状況説明します
GUIと標準入力でやりとりするプログラムを書いています
GUIは将棋所というプログラムでオープンソースではないです
私が作ってるのは将棋の思考エンジンです
これで将棋を指すと807手目くらいで思考エンジンに送る文字列が4096文字を超えてしまい、思考エンジンの動作が止まってしまうようです
219: 207 [] 2016/01/20(水) 15:08:19.19 ID:7Lwquj6u(4/5) AAS
>>217
コマンドプロンプトを立ち上げて4096文字以上の文字列をペーストしたところちゃんと表示してくれたので、大丈夫なんじゃないかと思ってるのですが……
しかも、以前2000000文字を標準入力から受け取るプログラムを書いたことがあって、そのときは問題なく動いたはずなんです
この問題です→http://yukicoder.me/problems/686
221: 207 [] 2016/01/20(水) 15:12:22.18 ID:7Lwquj6u(5/5) AAS
>>220
そうなんですね……ありがとう
連投すみませんでした
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s