X



C++相談室 part152

■ このスレッドは過去ログ倉庫に格納されています
0467デフォルトの名無しさん
垢版 |
2020/09/22(火) 10:13:21.77ID:Zd6n0i5+
>>417
それのどこが非合理なのか全く分からない。
ちなみに、俺は数学が好きで、学生時代、ほぼ満点だった。
0468デフォルトの名無しさん
垢版 |
2020/09/22(火) 10:52:41.92ID:GaogVwml
>>467
>444 を読むと、言いたかったことはわかる。
> 関数識別子でも型識別子でもそれを一覧しやすいところに集めやすいことを合理性と言っている

言葉のチョイスはおかしいと思うけどね。単に「読みやすさ」「読みにくさ」とか言えばよかったところ。
0469デフォルトの名無しさん
垢版 |
2020/09/22(火) 10:52:56.79ID:iby+25bn
>>459
vector<string_view> dim;

string_view sv = str;
string_view::size_type f;
while ((f = sv.find('\n')) != string_view::npos)
{
dim.emplace_back(sv.begin(), f);
sv = sv.substr(f + 1);
}
dim.push_back(sv);
0470デフォルトの名無しさん
垢版 |
2020/09/22(火) 15:44:58.47ID:Zd6n0i5+
>>468
個人的に数学記号のようなもの解読する値から強い方だからかも知れないが、
usingがtypedfよりも特に読みやすいとさえ思わない。
ただし、
#define 名前 定義内容

using 名前 = 定義内容;
で順序に対応関係が有ることはある。
しかしながら、C/C++では、
型名 変数名; // (100)
の順序な分けで、LL言語に多い、
var 変数名 : 型名;
の順序ではないので、統一と言う点では、typdefは(100)と美しく統一されている。
0472デフォルトの名無しさん
垢版 |
2020/09/22(火) 16:00:22.94ID:iCejn/78
typedef int (*funcA)(float, long), (*funcB)(float, long), (*funcC)(float, long);

の代わりに
typedef int (*(funcA, funcB, funcC))(float, long);
とか描けないよな
0473デフォルトの名無しさん
垢版 |
2020/09/22(火) 16:17:29.92ID:EdpAH8NO
>>464
通じませんでした
しかしこれ以上興味も維持できませんので
この話はここで閉じさせてください
レスしてもらったのに申し訳ないです

見解は元の>>416さんにでも尋ねてみてください
0474443
垢版 |
2020/09/22(火) 16:18:39.11ID:EdpAH8NO
メール欄と名前欄間違えた
0475はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/22(火) 16:34:37.47ID:Q5rCUsEX
>>470
> しかしながら、C/C++では、
> 型名 変数名; // (100)
> の順序な分けで

「型名 変数名;」ではなく「型指定子 宣言子;」な。
(実際には宣言子は複数書けるがそれはわきに置く。)
順序はある程度は好みだろうとは思うが、
変数を宣言するにあたって「型名を与えているわけではない」んだ。

たとえばポインタ型の変数だと

int* a;

みたいに宣言できるが、
このとき int という型指定子と *a という宣言子から成る。
a の型名は int* であるが、
宣言のときには int は型指定子の側について * は宣言子の側についてるわけ。

typedef は変数宣言の文法と一致させているという意味では一貫していることに合意するが、
そもそも型名を途中で分断するかのような変数宣言の文法がイケてないので、
そっちで統一するのが本当にうれしいのかね? という点で疑問を提示する。

いや、それでうれしいというのならそれでもいいんだが、
前提がそれほど一貫してないのに一貫性をもちだしても仕方なくね?
0476デフォルトの名無しさん
垢版 |
2020/09/22(火) 16:38:32.20ID:Zd6n0i5+
>>475
すまんが、個人的には、
int *ptr;

int* ptr;
と書く人は頭が悪いのかな、と思っていつも見ている。
0477デフォルトの名無しさん
垢版 |
2020/09/22(火) 16:43:05.81ID:EdpAH8NO
int* a;
int* b;
int c;
//int[42] d;
↑こう書きたいという勢力と…

int *a, *b, c, d[42];
↑こう書きたいという勢力があるんやろね

好みというかその人のバックグラウンドというか
0478はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/22(火) 16:48:28.25ID:Q5rCUsEX
>>476
* は (文法的には) 宣言子の側についてるからそちらにくっつくもんなんだろうが、
型名としては int* だから int* と書く方が好ましいと考えている。
文法的な解釈はともかく「型名 変数名;」に近い書き方の方がわかりやすいという考え方だ。

あと、 C++ の設計者自身が * を左に寄せる書き方をしてるから私はそれに巻かれている。
C として書くときは * は変数名の側にくっつけて書くようにしてる。 (K&R ではそういう書き方になってるので。)
* の両側に空白を入れる流儀も存在するようだ。
0479デフォルトの名無しさん
垢版 |
2020/09/22(火) 17:23:35.93ID:Zd6n0i5+
>>478
>あと、 C++ の設計者自身が * を左に寄せる書き方をしてるから私はそれに巻かれている。
>C として書くときは * は変数名の側にくっつけて書くようにしてる。 (K&R ではそういう書き方になってるので。)

Cの設計者は数学的、C++の設計者は凡才的。
0480デフォルトの名無しさん
垢版 |
2020/09/22(火) 18:25:41.01ID:iCejn/78
>>476
+1
ほんそれ
stroustrupは頭が●照る
0481デフォルトの名無しさん
垢版 |
2020/09/22(火) 18:27:35.58ID:iCejn/78
>>478
int* a, *b, *c;
あほやろ
0482デフォルトの名無しさん
垢版 |
2020/09/22(火) 18:44:14.87ID:PYPDpGOY
わしは自身がハゲてきてビヨヨーン先生を師と仰ぐようになったから左寄せ派
0483デフォルトの名無しさん
垢版 |
2020/09/22(火) 19:04:01.34ID:fNKq19I/
俺も左寄せ派だわ。
*は明らかに型の一部なのに変数宣言のときだけ型でないふりしてるのがいただけない
0484デフォルトの名無しさん
垢版 |
2020/09/22(火) 19:05:41.48ID:EdpAH8NO
int *aを
int* aと書きたい人は
int (*f)()を
int(* f)()と書けば満足するのだろうかという不思議はある
そういうときこそtypedefですよ、ってことなんだろうか
0489デフォルトの名無しさん
垢版 |
2020/09/22(火) 19:32:53.07ID:EdpAH8NO
>>486
なるほど
int*p // 左に*寄せる
int (*f)() // 寄せない
int (*a)[42] // 寄せない
int* (*f)() // 戻り値側だけ左に寄せる
こういう感じでやっていくのかな
0490デフォルトの名無しさん
垢版 |
2020/09/22(火) 20:39:49.00ID:iby+25bn
いつも老害呼ばわりされてる俺が
今日ほどこいつら老害と思ったことはない
0492◆QZaw55cn4c
垢版 |
2020/09/22(火) 23:08:52.68ID:r1FoxJcx
boost::format() が標準にとりこまれるのって、c++20 からでしたっけ?
0493はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/22(火) 23:30:22.08ID:Q5rCUsEX
>>484
元からイケてない変数宣言の文法を部分的にどうにかすっきり見せる
って程度の話なんで、複雑な事例を更に複雑にするような変なルール
にしたいわけではない。

C++ 的な方向に振るなら int (*f)(); は
std::add_pointer_t<int()> f;

std::decay_t<int()> f;
かなぁ……。

冗長だけど変に入り組んだ感じがなくなるので type_traits はそれなりに取り入れてもいいと思うよ。
0495はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/22(火) 23:37:01.31ID:Q5rCUsEX
>>492
std::format は boost::format とはだいぶん違うように見えるが。
でもまあ std::format が出来たのは C++20 からではあるよ。
0496◆QZaw55cn4c
垢版 |
2020/09/23(水) 00:15:55.98ID:J9lXF67O
>>495
ありがとうございます
今回は sprintf() で妥協します…
0498はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/23(水) 01:40:34.94ID:2N0Iktsg
>>497
C だと _countof に相当するものは欲しいなと思うが、
C++ 的には std::size か std::extent を使いたまえ。
0499デフォルトの名無しさん
垢版 |
2020/09/23(水) 01:44:08.47ID:wtMA3RXJ
>>493
>元からイケてない変数宣言の文法を部分的にどうにかすっきり見せる
一般的なポインタを表現するためには、どうしても、宣言子の中にも型の一部を
書くべきだったので、文法がそのように選択され、
int* a;
ではなく、
int *a;
と書く方がその記法と統一感がある。
数学者や物理学者は一般性や統一性がある方が美しいと感じる人が多いと
言われており、通常、数物の世界で「美しい」というのは、統一性のある
書き方。
なので、C/C++の型でも、後者の方が美しく感じるのが数物系の才能がある
人の感覚。
0501デフォルトの名無しさん
垢版 |
2020/09/23(水) 01:50:27.78ID:wtMA3RXJ
>>499
ポインタだけでなく、配列も、
int a[3];
の様に書く。これも、人気言語であったBASIC言語の
DIM a(3)
と似た感覚となっている。
配列はもちろん型の一部ではあるが、これを
int[3] a;
と書いて分かり易いとは限らない。というのは、
配列を使う場合には、BASICの場合ではa(i)、Cの場合では、a[i]のように書くので、
これも、宣言に置いても、BASICやCの書き方の方が分かり易いと思うのも自然。
それに
int *ptr_s[3];  // (100)
のような場合に、分かり易く型を全て左に書くのは難しい。
書くとすれば、
int*[3] ptr_s;
となるが、これが果たして分かり易いかと言えばNoだろう。
使う場合には、ptr_s[i] が int へのポインタになるのだから、
(100)の記法は至って分かり易い。
0502はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/23(水) 01:55:10.68ID:2N0Iktsg
>>499
> どうしても、宣言子の中にも型の一部を書くべき

それを前提とするならそれと一貫させることを俺は否定してない。
でも前提とできないよねという話をしてるんだから
なんで「べき」なのかを説明しないとなんの主張にもなってないよ。
0503デフォルトの名無しさん
垢版 |
2020/09/23(水) 01:55:45.37ID:wtMA3RXJ
>>501
さらにいえば二次元配列の場合、宣言は、
int a[3][2]; //C。使う場合は a[i][j]
DIM a(3,2); //BASIC。使う場合は、a(i,j)
となるが、もしCで型を全て左に書くとすれば、
int[3][2] a;
となると思うかもしれないが、これは、数学的な統一性からすれば
間違いで、正しくは、
int[2][3] a;
となり、前後を逆に書くのが「正しい」。
これが即座に理解できる人が数学的才能が有る人で、
教えてもらわないと分からない人才能が無い。
0504デフォルトの名無しさん
垢版 |
2020/09/23(水) 02:05:33.12ID:wtMA3RXJ
>>502
Cの記法は、物理学で言うところの「組立単位」に相当する「組み立て型」を
一般的に表現するためには、かなり美しく正しい選択をしている。
int *a[10]; // (1)
int (*a)[10]; // (2)

は、物理学のように言えば、int-ptr-array-aとint-array-ptr-aの違いを
表しているが、Cの表現はとても理にかなっており非常に分かり易い。
これらの型を全てまとめて左に書こうとすれば、書くことは出来て、
int*[10] a; // int-ptr-array-a, (10)
int[10]* a; // int-array-ptr-a, (11)
となるが、果たしてこれが分かり易いかどうかと言う問題となる。
それぞれを使う際の a[i] や、*a の表記と(1), (2)に上手く対応しているので、
(10),(11)よりも統一が取れており、数学的には「美しい」状態となっている。
0506デフォルトの名無しさん
垢版 |
2020/09/23(水) 02:24:26.38ID:wtMA3RXJ
>>502
C言語のように「書くべき」ことが分かる一番分かり易い例は、Cで
int a[1][2][3][4];
と書くものが、全部左に型を書く記法だと
int[4][3][2][1] a;
と書かないと、組み立て型(物理学における「組立単位」に相当)における
一般性を失うが、それだと、使う際の a[i1][i2][i3][i4]と要素数の指定とが
直感的に逆さまになってしまう問題が起きる。

もし、
int[1][2][3][4] a;
のように書くと、一般性を失い、組み立て型としては破綻しまい、その場しのぎの
記法となってしまう。
もしこれが理解できないのなら、悪いけど、数学的才能や、コンパイラを設計する才能が無い。
0507デフォルトの名無しさん
垢版 |
2020/09/23(水) 02:24:53.28ID:VKAwJeUe
どうでもよい
0509デフォルトの名無しさん
垢版 |
2020/09/23(水) 02:55:43.29ID:VKAwJeUe
大工が金槌はこうでなくてはならない(家を作ったことない)
0510デフォルトの名無しさん
垢版 |
2020/09/23(水) 02:56:47.86ID:VKAwJeUe
この手の輩はいないほうがいい
邪魔
0511デフォルトの名無しさん
垢版 |
2020/09/23(水) 02:58:20.51ID:VKAwJeUe
クソみたいなマウント合戦を繰り広げる老害であることを自覚しろ
0512はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/23(水) 02:59:44.49ID:2N0Iktsg
>>504
数学的・物理的な美しさを (仮に (あくまでも仮に) その主張が妥当だとしても) C++ スレで根拠にするのが不思議。
そんな美しさなんてどうでもいいもの。

こちらの主張は

宣言の文法が型名とは別にある
→ その時点で一貫性なんてないよ
→ どちらを軸にすることもありうる
→ でもまあ C++ の発展の様子からすると型名を軸にしたさが見えるね

って話で、現時点で無い文法を導入したいとか思っているわけでもないし、
存在する文法を絶対に駄目だというわけでもない。

とはいえ (話の大元に戻るが) 現在の C++ が typedef を冷遇しているので、
なるべく using を使ったほうがいいよねってだけ。
0513デフォルトの名無しさん
垢版 |
2020/09/23(水) 04:12:53.08ID:VKAwJeUe
わしのFormatterは
int* a;
int *a, *b, c;
のように整形しよる。これが落とし所として妥当であろう
0514◆QZaw55cn4c
垢版 |
2020/09/23(水) 05:07:59.09ID:J9lXF67O
>>500
https://github.com/fmtlib/fmt
でしょうか?github になれてなくて、これを使う方法もよくわからないし…
20年使っている sprintf() でもういいや…って妥協してしまいました
手元のコンパイラは g++17, 職場のは g++11 だけれども、セキュリティが堅くて「無断で」cygwin をアップデートさせてもらえない…
必要に迫られて徹夜して間に合わせたけれども、プログラミングへの集中力はずいぶんと落ちてしまいました…

コメントありがとうございました
0515デフォルトの名無しさん
垢版 |
2020/09/23(水) 07:58:28.38ID:fDvsnE+M
>>506
auto signal(int, void(*fp)(int)) -> decltype(fp); //こう書かれたら「破綻」で読めなくなるのか? おまえさんは
それこそC++11のグラマーが読めない、つまり数学的才能に乏しいことになるぞ
0516デフォルトの名無しさん
垢版 |
2020/09/23(水) 08:04:19.35ID:fDvsnE+M
>>512
あいつ結局Cの文法と設計思想を説明してるだけだよな
それをC++11の文法と設計思想を否定する根拠にしようとしているようだが
筋違いというか脈絡がない

ぼくはusing使いたくないんだーtypedef使うのを邪魔すんなー
僕はものすごく数学と物理に詳しいんだーセンスないやつうるせー
0517デフォルトの名無しさん
垢版 |
2020/09/23(水) 09:08:00.93ID:wtMA3RXJ
数学や物理学は、2000年以上も続く巨大なエコシステムを持っており、
それ以上簡潔にならないくらいな表現方法を発明済み。
それとは別の表現をしてもそれらを超えることはまず不可能で、文系の人達の
自己満足に過ぎない。
0518デフォルトの名無しさん
垢版 |
2020/09/23(水) 09:23:45.36ID:fDvsnE+M
思っクソ関係ない
話せば面白そうな気がしたがそっちへ行くのね
あーあ残念
0519デフォルトの名無しさん
垢版 |
2020/09/23(水) 09:33:29.79ID:wtMA3RXJ
最近の「モダン」言語は、既存のものを知らずに新しいものを作ろうとする傾向が目立つ。
彼らは、今までの理論などそのメリットが理解出来ておらず、効率の悪い、
分かりにくい、整合性の無い、その場しのぎで、一般性が無い記法を導入する。
0521デフォルトの名無しさん
垢版 |
2020/09/23(水) 10:19:32.59ID:hJkRvCZv
>>503
えっ?
そもそも
int a[2][3]; //C。使う場合は a[j][i]
DIM a(3,2); //BASIC。使う場合は、a(i,j)
じゃないのかな

>>499 は支持する
0522デフォルトの名無しさん
垢版 |
2020/09/23(水) 10:22:59.31ID:hJkRvCZv
>>506
ここもおかしい

元々
int a[4][3][2][1];
と書くべき
0523デフォルトの名無しさん
垢版 |
2020/09/23(水) 11:04:51.52ID:tBUnvPYy
分かりにくい文法で自爆ってダサすぎるなw
そもそもC++なのに素の多重配列使うって
センスなさすぎだし
0524デフォルトの名無しさん
垢版 |
2020/09/23(水) 12:28:26.75ID:OXXcv7E7
>俺は数学が好きで、学生時代、ほぼ満点だった。

数物系が得意な人が、こんな馬鹿っぽくて曖昧な書き方するのかね?
この情報でどうやってお前の能力を推し量れと
0525デフォルトの名無しさん
垢版 |
2020/09/23(水) 12:31:30.53ID:YfY3TQQ4
正直マジレスするアホが居るとは思いもよらなんだ
0527デフォルトの名無しさん
垢版 |
2020/09/23(水) 17:58:15.39ID:fDvsnE+M
CでもそうだけどC++を使うからにはC++らしく使いたいね
C訛りのたどたどしいC++からは早く脱したい
0528デフォルトの名無しさん
垢版 |
2020/09/23(水) 17:59:58.72ID:fDvsnE+M
Cで憶えたことがとりあえず使えるのがC++に用意された入りやすい門ではあるけどね
そこは振り出しでしかないんだよ
0531484
垢版 |
2020/09/23(水) 20:09:34.36ID:7wSVczyT
>>493
> std::add_pointer_t<int()> f;
> std::decay_t<int()> f;

(´・∀・`)ヘー
そんなんあるんですね
勉強になりました

>>529
凄くC++らしいと思うけどw
意地でもテンプレートで何とかしようというのは
0532◆QZaw55cn4c
垢版 |
2020/09/23(水) 20:16:22.00ID:J9lXF67O
>>524
確かに、数物系に「特異」な人のコメントにしては貧弱だなあと、私も思いました
たとえばガロア理論、とか、相対性理論、超弦理論、とか、を熱っぽく語って欲しいです

個人的にはエルゴート理論について薀蓄を知りたいですね
0533◆QZaw55cn4c
垢版 |
2020/09/23(水) 20:16:56.39ID:J9lXF67O
>>527
でも iostream は失敗作という気がふつふつと…(略)
0535デフォルトの名無しさん
垢版 |
2020/09/23(水) 21:11:40.16ID:7wSVczyT
時代によってかなり変わるの?
C++98以降しか知らないけど
C++らしさ=テンプレート
と断言していいほどの一点張りだと思うけど(個人の感想です)
0537デフォルトの名無しさん
垢版 |
2020/09/23(水) 23:12:26.96ID:fzdYgRfo
ここまで喧喧諤諤の多くの意見が飛びかっておるが
iostream は要らん子、というのは一致しておるな
とくに operator << >> 系のやつ
0538デフォルトの名無しさん
垢版 |
2020/09/23(水) 23:42:00.61ID:0XTX+Fu9
coutで出力するよりstd::stringに一旦文字列化してからprintf()で出した方が速いという時点で以下略
0539はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/23(水) 23:55:04.80ID:2N0Iktsg
個人的には iostream をそこそこ好きなんだが、
今だったらこんな設計はしないだろうなというのはとてもよくわかる。
0540はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/09/24(木) 00:04:29.70ID:f1TxZ5Sj
>>535
互換性を捨てられない以上は汚い部分も捨てられないんだよね。
だからどうやって抽象化層をかぶせるか、もっと直接に言えば
汚い部分をどう隠すかというのが C++ らしさじゃないかな。

そして型 (または型の表記) に関して汚い部分を隠す道具としては
テンプレートは特に有用なもののひとつだとは思う。

ただ、一点張りは言い過ぎで、取れる手段、手数の多さも C++ らしさだというのが私の感想。
組み合わせよう。
0542デフォルトの名無しさん
垢版 |
2020/09/24(木) 03:09:46.41ID:sKL6gd3p
printfはバッファオーバーフローの脆弱性を産みやすい
0543デフォルトの名無しさん
垢版 |
2020/09/24(木) 03:10:26.11ID:sKL6gd3p
早いとか以前の問題
0544デフォルトの名無しさん
垢版 |
2020/09/24(木) 05:20:27.18ID:bfjF2pM4
>>531
>意地でもテンプレートで何とかしよう
"自分でテンプレート書いて"色々どうにかしてる人が言うならまだ説得力もあるけどね
add_pointer_tとかdecayは基本的に標準ライブラリの実装(のためのメタプログラミング)の上での副産物だろ
テンプレートの文脈(=受け取った型に、場合により変換を施す必要がある)でもないとこでそんなん使って
「C++らしい」とか、だいぶ痛々しい

まぁ別に使用を禁止されてるわけでもないから使いたきゃ好きにすればいいけどね・・・
0545デフォルトの名無しさん
垢版 |
2020/09/24(木) 06:18:07.32ID:sKL6gd3p
>>544
同意
0546デフォルトの名無しさん
垢版 |
2020/09/24(木) 06:37:36.81ID:n05mXSO9
>>533
まあね、俺も禿1からの付き合いだけど
未だによくわからんところはある

iostreamに限ったことじゃなく古株のクラスライブラリって
だいたい今作るならこうはしないってところが何かあるね
大きな実害なければ我慢するし
困る場合はそれこそ腕が鳴るチャンス
0547デフォルトの名無しさん
垢版 |
2020/09/24(木) 06:40:25.74ID:n05mXSO9
>>535
たとえばだけど、二次元配列がいるならクラス化するとかね
人によるだろうけどvector<vector<int>>は俺あんまりやりたくない
0548デフォルトの名無しさん
垢版 |
2020/09/24(木) 06:48:44.27ID:n05mXSO9
用意されているものを使っただけだろ
意地でもとかバイアスが入るのはコンプレックスの顕れだからこそ
ギャンギャン強弁してくるわけだ
0552デフォルトの名無しさん
垢版 |
2020/09/24(木) 07:14:45.36ID:bfjF2pM4
なんか口調でわかるわ、いつものアホか・・・
「>」これが付いてるのは引用箇所だからな、覚えとくといいよw
0555デフォルトの名無しさん
垢版 |
2020/09/24(木) 08:57:55.68ID:55R+R5Lh
printf, scanf系はtypedef型の正体を知っておかねばならないとかクラス型を基本型と同等に扱えないとかモロモロあるのに
いつまでもマンセーしててもしゃーないで
0556デフォルトの名無しさん
垢版 |
2020/09/24(木) 09:00:20.65ID:sKL6gd3p
>>549
いや普通にありえるからググってわかる程度のこと聞くなよ
0558デフォルトの名無しさん
垢版 |
2020/09/24(木) 09:12:36.08ID:afeC5pu7
最終出力がわかりにくいとかロケール対応しにくいとかあるわけだけど
引数順にしか出力できない時点でprintfもロケール対応のやりにくさは変わらん
0560デフォルトの名無しさん
垢版 |
2020/09/24(木) 09:40:43.54ID:sKL6gd3p
ググりかたから教えなきゃならんの?
相手にしてられんわ
0562デフォルトの名無しさん
垢版 |
2020/09/24(木) 10:57:49.94ID:afeC5pu7
>>561
ロケールと書いたのが悪かったな
多言語化だな
語順を変えるとかやりにくい
Pythonのようにフォーマット文に引数の順番をかければ
言語による語順の違いもフォーマット文の差し替えだけで済む
0564デフォルトの名無しさん
垢版 |
2020/09/24(木) 12:32:18.71ID:QU112yU2
>>556
ググれー
で逃げる気マンマンでワロタ
おとなしくsprintfでした、ごめんなさい
って言ってりゃいいのにw
0566デフォルトの名無しさん
垢版 |
2020/09/24(木) 12:47:12.82ID:n05mXSO9
>>562
ああ確かに語順の変え方はprintfと変わらんな
auto time_v = time(nullptr);
cout << put_time(localtime(&time_v), "%m/%d/%y %H.%M'%S");
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況