トップページ > プログラム > 2015年05月15日 > w0X/ZpcK

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

2 位/160 ID中時間01234567891011121314151617181920212223Total
書き込み数0000001101021000010110009



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Win32API質問箱 Build120©2ch.net
Regular Expression(正規表現) Part13©2ch.net

書き込みレス一覧

Win32API質問箱 Build120©2ch.net
365 :デフォルトの名無しさん[sage]:2015/05/15(金) 06:41:01.84 ID:w0X/ZpcK
WinMainの中で
AllocConsole();
してprintf出力しているのですが、
別スレッドを作成して、その中でもprintfしたところ、
このコンソールには出ませんでした。
どうすれば別スレッドからもこのコンソールに出せますか?
Regular Expression(正規表現) Part13©2ch.net
252 :デフォルトの名無しさん[sage]:2015/05/15(金) 07:00:13.95 ID:w0X/ZpcK
https://msdn.microsoft.com/ja-jp/library/bb982821.aspx

// (3) with wchar_t*
const wchar_t* target3 = L"2014-04-02";
wcmatch wideMatch2;

// LR"(...)" is a raw wide-string literal. Open and close parens
// are delimiters, not string elements.
wregex wrx2(LR"(\d{4}(-|/)\d{2}(-|/)\d{2})");
if (regex_match(target3, wideMatch2, wrx2))
{
wcout << L"Matching text: " << wideMatch2.str() << endl;
}

を改造して、
wregex wrx2(LR"((\d{4})(-|/)(\d{2})(-|/)(\d{2}))");
にしたら、マッチした部分文字列を取り出せたのですが、
取り出したいのは数字だけなのですが、不要なハイホンもマッチ結果に保管されます。
このハイホンはマッチ結果に保存しないようにすることは可能でしょうか?
(まあ、ハイホンが保管されても特に問題はないのですが)
よろしく。
Regular Expression(正規表現) Part13©2ch.net
254 :デフォルトの名無しさん[sage]:2015/05/15(金) 09:02:09.61 ID:w0X/ZpcK
上手く行きました。
ありがとうございます。
Regular Expression(正規表現) Part13©2ch.net
256 :デフォルトの名無しさん[sage]:2015/05/15(金) 11:05:59.72 ID:w0X/ZpcK
追加で質問なのですが、

"2014-04-02-432-6563-423-12321-131"
"24-0-02-2-656"

みたいに、いくつかの数字がハイホンで連結されている場合には
wregex wrx2
の部分をどのように書けば、全ての数字をマッチ結果に保存できますか?
Regular Expression(正規表現) Part13©2ch.net
258 :デフォルトの名無しさん[sage]:2015/05/15(金) 11:58:58.81 ID:w0X/ZpcK
>ハイフンをヌル置換じゃダメ
うまく行きませんでした。
数字の桁数が2ケタとか4ケタとか固定じゃなくて、
任意の場合の記述方法が分かりません。
Regular Expression(正規表現) Part13©2ch.net
261 :デフォルトの名無しさん[sage]:2015/05/15(金) 12:49:41.72 ID:w0X/ZpcK
wregex wrx2(LR"((\d*\d)(?:-)(\d*\d)(?:-)(\d*\d)(?:-)(\d*\d)(?:-)(\d*\d).*)");
って書いたら、最初の5つまでは取得できましたが、
これを任意の回数にマッチさせるパターンの書き方が分かりません。
Regular Expression(正規表現) Part13©2ch.net
267 :デフォルトの名無しさん[sage]:2015/05/15(金) 17:37:55.67 ID:w0X/ZpcK
みなさん、いろいろとアドバイスありがとうございました。
自分でも試行錯誤しましたが、結局断念しました。
>>264
>なにも一発で求めなくてもC言語ならループさせるなりどうとでもできるだろ
そうですね。そうします。
Win32API質問箱 Build120©2ch.net
376 :デフォルトの名無しさん[sage]:2015/05/15(金) 19:46:23.99 ID:w0X/ZpcK
>>369
サンプルプログラム有難うございました。
無事にうごきました。別スレットからConsoleに出力できました。
大変助かりました。感謝です。

本件とは無関係ですが、この自作プログラムの中で
printfやcoutしている箇所がいくつかあるのですが、プログラムを
実行していると、ある時点から改行されずに、横につながって出力
されてしまうおかしな症状が出て悪戦苦闘しています。
printf("\n");や cout<<endl;でも
改行しなくなるなるんです。
こんな症状は初めてで、何がおかしいか心当たりが全くありません。
今回の別スレッドプリント機能を追加する前からそうなっていました。
もし何か解決のヒントありましたらアドバイスよろしく。
Win32API質問箱 Build120©2ch.net
380 :デフォルトの名無しさん[sage]:2015/05/15(金) 20:30:49.43 ID:w0X/ZpcK
>>377
片山さん、
レスありがとうございます。
さっそく
CriticalSectionでググッて、たまたま見つけた
http://bituse.info/winapi/16
のサンプルをみて、
InitializeCriticalSection()
EnterCriticalSection()
LeaveCriticalSection()
などを追加してみましたが改善されません。
サブスレッドは、
std::packaged_task
std::thread
を使って作成しています。
も少し何かチェックすべき点などありましたらご指導お願いします。


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