トップページ > プログラム > 2016年01月20日 > 7Lwquj6u

書き込み順位&時間帯一覧

7 位/198 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000023000000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
207
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net

書き込みレス一覧

スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
215 :デフォルトの名無しさん[]:2016/01/20(水) 14:33:44.70 ID:7Lwquj6u
すみません実際には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 == ...

}
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
216 :207[]:2016/01/20(水) 14:40:09.85 ID:7Lwquj6u
このプログラムでgetlineが実行され標準入力からの受付待ちになったとき
コピペしてあった4096文字以上の文字列を標準入力にペーストすると、4096文字目以降が途切れて表示されなくなってしまいます
それ以降キーボードから入力しても何も表示されず、受け付けてくれないようです
標準入力以外(ファイルストリーム)からの入力に変更することは仕様上できないので、なんとか標準入力の制限を取っ払う方法を調べていましたが、見つからずここで質問させていただきました
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
218 :207[]:2016/01/20(水) 15:02:48.12 ID:7Lwquj6u
>>208 >>209 >>213
教えてくれてありがとう。詳しい状況説明します
GUIと標準入力でやりとりするプログラムを書いています
GUIは将棋所というプログラムでオープンソースではないです
私が作ってるのは将棋の思考エンジンです
これで将棋を指すと807手目くらいで思考エンジンに送る文字列が4096文字を超えてしまい、思考エンジンの動作が止まってしまうようです
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
219 :207[]:2016/01/20(水) 15:08:19.19 ID:7Lwquj6u
>>217
コマンドプロンプトを立ち上げて4096文字以上の文字列をペーストしたところちゃんと表示してくれたので、大丈夫なんじゃないかと思ってるのですが……
しかも、以前2000000文字を標準入力から受け取るプログラムを書いたことがあって、そのときは問題なく動いたはずなんです
この問題です→http://yukicoder.me/problems/686
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
221 :207[]:2016/01/20(水) 15:12:22.18 ID:7Lwquj6u
>>220
そうなんですね……ありがとう
連投すみませんでした


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。