C言語なら俺に聞け 146
■ このスレッドは過去ログ倉庫に格納されています
Electron、少し気になって調べてみたらhello worldアプリのファイルサイズが100MB近くになるとか書いてあってワロタ
さすが最強だなw >>96
動作環境同梱だからな。
でも実際、それで問題ないからVSCodeやatomに使われてる。
しかしこのスレも本当にゴミになったな。
揚げ足取りしか出来ない馬鹿しか居ない。
文句を言う前に、まずオススメのGUIを出してみろよ。
事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
そもそもGUIをCで書いてる奴が居ないんだから。
Electronにはそれ以外にも色々問題はある。
だからElectronが許されるかどうかは確かに問題だが、
それでもいい環境なら今現在GUIに最適なのは間違いない。 ある程度大きなツールなら問題ないだろうけど、
ちょっとしたアプリだと驚きのサイズかな
個人的にお手軽なのはC#(WinForms)で
気合入れるならC++(Win32API)だけど
オススメと言われると悩ましいな
Cはその手のには使ってない Win32APIの肥大化を危惧してCOMを使うようになったな >>97
> 文句を言う前に、まずオススメのGUIを出してみろよ。
> 事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
お前が無視してるだけだろ w
>>>69
>> Cなら普通にgtkだろう
> そもそもGUIをCで書いてる奴が居ないんだから。
なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ... こいつおそらくWin32APIで何か作ったことないんだろうな 今北。なんだこの流れ。
元をたどれば>>49がGUI未経験なのでどれを勉強すればいいか聞いてたのが始まりだよな。
おそらく49はプログラミング初心者だろうから、別にC言語を使わなきゃならないという縛りもないはずだ。
C言語スレではあるものの、サクッとGUIアプリが作れる言語を教えるというのは理にかなっていると思う。
初学者がC言語しか知らないというのも珍しいことではない。
実際、大学や高専ではいまだ最初にC言語を教える学科が多い。
だが、それはC言語を学べば他の言語を学ぶ時の学習コストが大幅に下がるというのも理由の1つとしてあると俺は思う。
ということで、このスレではおすすめのGUIフレームワークの話題が繰り広げられているみたいなのだが、
これはおそらく収拾がつかないぞ。
フレームワークの種類だって数多くあるし、言語もケースバイケースだからなぁ。
結局>>49がどういうプラットフォームでGUIアプリを作ってみたいかによるんだよ。
普段使ってるOSがWindowsかLinuxかだけでも大分違うし、
動くならWindowsだけでいいのか、できるだけクロスプラットフォームにしたいのかでも違うし。
なので、49が黙っている以上、誰もが納得する回答なんて出るわけないんだよなぁ。 C初心者です
苦Cを一通り終えたので練習問題をとこうと思っているのですが、お手頃なレベルの問題が載ってるサイトや問題集とかありますか? >>106
AIZU ONLINE JUDGE
http://judge.u-aizu.ac.jp/onlinejudge/
会員登録が必要だけど、たくさんのプログラミングの問題が載っている。
言語はC言語だけでなく様々な言語が選択可能で、
入力されたテキスト(標準入力)に対し正しい回答(標準出力)を出せればOK。
アルゴリズム力や数学力を鍛えるのには役立つだろう。
序盤は入門者・初心者向けだが、上級者向けの問題もある(というか大半が上級者向け)。 >>107
おもしろいね
わざと制限時間いっぱいメモリいっぱいを目指す大会とか楽しそう >>108
制限時間いっぱいを目指すならタイマー使えばいいし
メモリいっぱいを目指すなら配列使えばいいので大会にならなそう >>100
市販の書籍でCOMに関するいいものはありませんか?
お手持ちのものでもいいです >>107
良いサイトを教えていただきありがとございます!
サイト見るからに難しそうですが頑張ります >>106
お手軽かどうかはわからないが一応この板にはプログラミングのお題スレがある。 配列名に動詞使うのは違和感ありますか?
week_of_day = get_week_of_day[(year + year / 4 - year / 100 +
year / 400 + (13 * month + 8) / 5 + day) % 7]; char *get_week_of_day[7] = {"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"}; >>113
if (m < 3) { y--; m += 12; }
が抜けているのはまずいね あ、忘れてました
おとなしく関数化したほうがいいでしょうか? 違和感といえば week_of_day よりも day_of_week の方がよさそうな点が(以下略 >>117
恥ずかしいです。辞書を引いたら
the day of the weekですね。確かに >>101
> なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ...
自己紹介乙。
お前は他言語が何も出来ないからその程度の視野なんだよ。
お前ら自身が今現在もGTKを使っててオススメだと思っているのならそれでいいが、
実際はお前らもGTKを使っておらず、それ以前に使ったこともない知ったかぶりだろ。
そういうミスリードはマジで止めろ。
Electronが生まれた理由はあるんだよ。
そして同様に、MSがMFC->Form->WPFと進化してきた理由もある。
この辺を理解出来ないのなら自分は馬鹿だと自覚して自重しろ。迷惑でしかない。 WPF止まりかー
Electron使ってるの?web系の人向けフレームワークに見えるんだけど
本当に心から最強と思ってる? >>119
普通にGTKも使ってるぞ
最近はC言語での開発は減ったけど保守とかあるしな
GUIって聞いてPCとかスマホのアプリ程度しか想像できないような知ったかには用はないからおとなしくROMっとけ 初心者がGUI勉強したいって言ったらPCやスマホのアプリ程度だと思うんだが… >>120
CXって言って欲しいのか?
>>121
保守だろ。
新規案件がない=今現在はそれを積極的に使う理由がない、だよ。
そもそも保守なら今でもMFCやらされている奴もいるだろ。 >>122
べつに>>49は初心者とは言ってないし、今時CでPCとかスマホのアプリ組もうとする奴は初心者と言うより変わりもんだろ w >>124
「初心者」とは言ってないが、
「CでGUIアプリ組む」とも言ってないぞ >>123
> 新規案件がない=今現在はそれを積極的に使う理由がない、だよ。
で、何が言いたいんだ?
消極的だろうがC言語でGUI組む話なんだから、関係ない話したいならよそへ行けよ 自分がC++の半分を理解できる知能を持たないなら、Tcl/Tkでもやっとけ とりあえず初心者向けにガイドラインを出すと、
・とにかく新しい物を使え
に尽きる。Cは歴史も長いから当然色々あるのだが、
GUIも色々試行錯誤していて、結果的に昔のは基本的にゴミだ。
当たり前だが新しい奴はいろいろ改善されているわけでね。
そして初心者なら自分で判断出来る能力はないのだから、他人の判断能力にすがれ。
これも当たり前だがみんなそれぞれの状況で「最適解だ」と考えた物を使ってる。
結果的に、割と妥当な物が採用される確率が高くなる。
んで、今時みんなWebでやってるだろ。理由は簡単、一番簡単だからだよ。
Web系()が馬鹿ばっかりなのは事実だが、
逆に言えば、本当に簡単にGUIが実現出来るからこそ、それで成り立ってる。
これは本当にJavaScript/HTML/CSSをやれば分かる。
これまでのGUIは何だったんだ?と思えるくらい間抜けなほど簡単に色々出来るから。 >>124,126
普通に読んだら>>49は初心者だよ。自分で判断する能力がないんだから。
で、そいつに「CでGUI」みたいなミスリードするな、って話だよ。 いくら説明してもダメなバカっているんだな...
スレタイ100回声に出して読んでから出直してこい 「どーしてもCでやりたいのなら○○だが……
そもそも論で、CでGUIコントロールを記述するのはめんどくせーから余所言語学んだほうが近道」 >>123
CXって何?もしかしてC++/CXのこと? >>133
とりあえずお前は何がオススメだと思っているの?
まずそれを聞こうか。 >>134
>>49の前提条件が分からないとオススメしようがないな
プログラミング未経験ならそもそもGUIの勉強の前にやることあるだろうと思うし
C言語を勉強してその延長上でかつWindowsならWin32APIでもいいだろうし >>132
とりあえずは同意だが、俺はCではGUIは学べないと思ってるんだよ。
Linusは「Cでもオブジェクト指向は出来る」と言うだろ。確かにこれも事実だが、
これは「既にオブジェクト指向を完全に理解しているから、文法サポート無しでも出来る」のであって、
「何も分かってない奴がいきなりCで出来る」ようにはならないと思うんだよ。
GUIもそうで、今現在最先端なのはJavaScript/HTML/CSSだと俺は思っているから、俺はそれを勧めてる。
それで正しいGUIが出来るようになれば、あとは昔のCのゴミみたいなGUIフレームワークでも何とかなるだろうさ。
しかしGUIのイロハも分かっていない奴に昔の=今から考えたら間違ったフレームワークでは、
間違った方向にしか進めないと思ってる。
これは逆説的だがJavaScripterがOOPを全く理解出来ていないことからも言える。
JavaScriptは全般的にOOPではないので、抽象クラスでコードを一本化ってのが割と出来ない。
PHPはもっと悲惨で、言語内に色々矛盾があるから普通にコードを書いていても躓く。
あれでは上達しないのも分かる。当然OOP(継承)の利点も理解出来ないし。
OOPと同様にGUIでド定番なのはMVCだが、逆にこれをお前らは理解してないだろ。
これも当然で、MVCなんて昔はなかったから、当然昔のGUIフレームワークは『文法的には』サポートしてない。
勿論それでもやれば出来るのだが、それは知っているからであって、知らないようでは組みようがない。
だからとりあえず今最新の物を使っておけ、というオススメになる。
少なくとも、今現在正しいとされている構成にしやすい物になってるから。 >>135
それ、普通は「逃げた」と言われるぞ。
まあいい、それでお前は今何を使っているんだ?まさかWin32APIとでも? 「逃げた」は>>134でしょ?
自分が今使ってるのはWindowsFormsを簡単なツール作成に使うくらいかな
メインはゲームなんでUIは自前 >>138
じゃあ何でFormsを勧めない?
そしてMSが何故Formsを捨てたのか理解してるか? >>138
あとついでだから聞いといてやる。
俺がCXについて「逃げた」として、お前はどう突っ込むつもりなんだ?
その話はどうあがいても本筋には繋がらないと思うが、やってみろ。 煽られても誤魔化すその姿勢は素晴らしいと思います
>>139
>>135
> >>49の前提条件が分からないとオススメしようがないな プラットフォームはWindowsって事で良いのかな?
あんまり話広げても困ると思うが もういい加減Cから離れた話になってるから、さっさと終わらせてくれ >>141
お前みたいなクソガキではないからな。
お前がWin32APIを『今』使っていてそれを勧めるのなら、それもありだろう。しかし、そうではない。
お前は今Formsを使っている。なら、それを勧めるのならそれもありだが、それもしない。
おかしいと思わないか?
Formsを使っているうちはFormsの問題に気づけない。
丁度、Cを使っている奴がCで何も問題を感じないのと同じだ。そんなもんだと思っている。
だから古いフレームワークをずっと使い続けている奴が古いのを勧めるのはあり得るし、不思議ではない。
しかし、お前はそうではない。
そりゃ単なる荒らし行為だよ。或いは構ってちゃんか? スレタイも読まずに中身のない長文書くアホが早く居なくならないかなぁ... ログ読み返して見たら最強とかオススメとか最新とかは言ってるけど
使ってるとは書いてないのな、ちょっと尊敬するわ
>>144
現行で使えるしな、条件次第では別に勧められても不思議じゃないだろ
勉強なら別に今使ってなきゃオススメ出来ないってこともないと思うし
GUI関係ないけどプログラミングの勉強にCASLとかオススメだぞ >>146
仮に俺が「使っている」と書いていたとして、どう突っ込むつもりだったんだ?
聞いておいてやる。
> GUI関係ないけどプログラミングの勉強にCASLとかオススメだぞ
ねえよ。 >>145
長文だけならまだしもその内容が間違っていたり古かったりと目も当てられん状態だしね
こういう人ってやっぱ実社会でも煙たがられてるんだろうね c言語というかwindowsAPIとかのがGUI学ぶならいいと思うが
大抵肝の部分隠蔽されてるし
cでGUI書くのがめんどくさいってなら同意できるけど ネットでは人を小馬鹿にした発言ばかりする
リアルでは小心者なやつがいるね > ネットでは人を小馬鹿にした発言ばかりする
> リアルでは小心者なやつがいるね
>>152 みたいな奴のことだな いつも小馬鹿にされてる>>152可哀想と思ったがそいつに小馬鹿にされとる>>153がおったw >>136
>GUIもそうで、今現在最先端なのはJavaScript/HTML/CSSだ
その大部分はテキスト処理ではないか?HTMLもテキストベースの処理のためなのではないか?
GUI の要素からはかけ離れている気がする
たとえば GUI ならば新しいウィンドウを起こし、新しいツリービューを起こし、任意のタイミングで音を出し、
映像をコントロールする(あらかじめ内容の決まったものを垂れ流すのではない)
HTML/CSS/Javascript って、そんなことができるのか?
smalltalk とかだったらまだ意見として分かる、でも HTML とかが GUI のもっとも成功したものだとは思わない
そもそも HTML/CSS/Javascript と GUI とを結びつけるのがへんだと思う
対案:そうだな、いまだったら Java で GUI をやるのがわかりやすいのではないか?まあ、現状廃れているのではあるが HTML5/JavaScript の実装例としてはGoogleマップが有名
マウスでブラウザの表示をグリグリ動かすのは今や当たり前 jQueryとかWordPressなどのウェブ技術は、DHTMLでGUIをバリバリ実現してるよ。 >>153のすぐ後に>>154があるのに>>152はどうやって小馬鹿にしたんだろう?
論理的思考能力のない奴はこれだから... w >>155
おじいちゃんの脳内はHTML5登場前の知識で止まってるんだな >>159
HTML5 で新しいウィンドウを発生させることができますか? >>155
お前がそんなに馬鹿なのにコテなのが本当に意味不明。
お前が嫌われているのも当然だよ。
> たとえば GUI ならば(以下略)
出来ないと思っているのなら、WebページなりVSCodeなり見て考え直せ。
> そもそも HTML/CSS/Javascript と GUI とを結びつけるのがへんだと思う
それはお前のGUIの定義が間違っているからだ。
前にも言ったがお前は抽象思考が出来てない。だから三流のままなんだよ。
Webページ自体がGUIなんだよ。お前はこれを理解出来ていない。
あからさまな「ボタン」である必要はなく、クリックに反応するのならそれは「ボタン」なんだよ。
或いは、Webページと同様にマウスに反応する画面を他GUIで作ってみることを考えろ。
明らかに死ねるだろ。
> Java で GUI
JavaのGUIなんてC以上に使われていないゴミだ。
ミスリードどころではないぞ、マジで死ね。
> でも HTML とかが GUI のもっとも成功したものだとは思わない
今のところHTMLがGUIの最も成功したものだよ。
・現状のGUIは、Webで済む場合はすべてWebが使われている。
・他GUIはWebを周回遅れで追っている。
GTK確認したが、GTK2はForms相当のゴミ、GTK3はWPF相当のゴミだった。
CXでご不満ならUWPか?と仮定しそちらも確認したが、
UWPで採用された「async/await」「セキュリティ」については、
最初からJavaScriptはそのアーキテクチャだった。結果的に、さらにWebに寄って来てる。
ただ、UWP/WinJSについてはElectron相当のポテンシャルはあるのかもしれん。
採用事例がほぼ無いらしいが。
あと、GTK3のバージョニングがおかしいから、GTK4がもうすぐ出てくるのかもしれん。
「HTMLパーサ」「CSS」が出てくればまだ戦える可能性は残る。 >>160
できるよ
jQuery UI使うのが簡単かな >>161
>Webページ自体がGUIなんだよ。お前はこれを理解出来ていない。
ブラウザの手のひらの上で踊るのが GUI なんですか?
>JavaのGUIなんてC以上に使われていないゴミだ。
そのとおりだと思いますが、では、どうしてゴミになってしまったのでしょう?Java-GUI のどこがまずかったのでしょうか? >>165
> ブラウザの手のひらの上で踊るのが GUI なんですか?
そういう問題じゃねえ。つか、理解出来て無いのお前だけだぞ。
> Java-GUI のどこがまずかったのでしょうか?
全部だろ。
元々Javaは現在のWebが担っている所を負担出来るポテンシャルはあった。
統一バイナリの対象はUWPよりも広く、Linuxまで含まれていたし、
つい先日までブラウザにはJavaの動作環境は同梱状態だった。
最初期には、今は当たり前のようにWebで行われる事も
Javaアプリ(2chで言う専ブラ相当品)の配布で対応されていたこともあったはず。
んで、今この状態だろ。Cより死んでいるのは全部駄目駄目だったからだよ。
GTKはGnomeとFireFoxが適用事例らしい。(どうもドイツ人はGTKが大好きのようだ)
Javaなんてマジで誰も使ってないだろ。(Eclipseがそうなのかもしれんが)
それは誰も使う価値があると認めないからだよ。
とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。 >>166
>>ブラウザの手のひらの上で踊るのが GUI なんですか?
>そういう問題じゃねえ。
ふふ、まあおっしゃりたいことは分かるのですが、私は仮想的な存在はデフォルトで否定的にみるものでして
>とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。
私は、Java の現状の状況を Java に内在した原因として捉えたいと考えています。
Java のまずい状況は Java 自体に原因があるはず
さて、それはなんでしょうか?
Java アプレットもあれほどだったのに、現在ではほとんどのブラウザに採用されなくされてしまった
なぜなのでしょうか? >>167
つか、お前が書けよ。
俺は何でそうなったかは知ってる。
それは政治的でもあり、技術的でもある。
が、馬鹿が煽ってくるスレでは情報はやらないことに決めてるんだよ。
だから敢えて書いてない。(自学用の鍵を与えるに留め、外して書いている)
ただし、馬鹿が馬鹿なりに考えて自学するのは手伝ってやるから、
お前が勝手に書け。それが俺の認識と合ってるかどうかくらいは答えるよ。
それで俺の認識が間違ってるのなら勿論叩いてくれていい。
ここはそういう場所だし、その為の場所でもあるし。
ただお前の問題はそこじゃない。
君は詳細を詰めるのではなく、抽象思考の癖を付けた方がいい。
今時詳細はググレば分かることが多いんだよ。ただの知識でしかない。
Javaアプレットが死んだ理由なんてすぐ出てくるだろ。
そんなことよりも、WebがGUIだと直感的に思えないことの方がものすごく問題だ。 布石打ってまで逃げるくらいなら書かなきゃいいのに
QZからも逃げるとか徹底してんな、それとも今ググってるのか?w >>168
>馬鹿が馬鹿なりに考えて自学するのは手伝ってやる
嬉しい!じゃ、お言葉に甘えて
私は Java 仮想マシンの存在自体がまずいと考えています。
Java はネイティブコンパイルできているべきだった、現在は LLVM コンパイラ環境もあることだし
仮想マシンの意義は当初から疑問に考えていたことでした
逆に Java のライブラリ体制は強く推しているつもり、これは C/C++ にはないリソース(=多数の人間で共有されうる共同幻想)だと思います
GUI も、同様に共同幻想として許容できるか、という視点で考えています
Java のそれや Win32API がそうだとはとても思えませんが、さりとて現時点でのベストはわからない
web 系を意識しだしたのは最近なのでこれについては意見はありません、手元で redmine を導入したときは gem が便利だったし、
rust も同様のパッケージ管理機構を持っているのは好感をもっています >>167
> Java のまずい状況は Java 自体に原因があるはず
ちなみに、俺は今Javaが不味いとは思ってないぞ。
GUIは死んだが、それは些細なことだ。
ここら辺が根本的に違うかもしれん。
俺は一つの言語で全てが出来るべきだとは思ってない。
むしろそれを目指しているのはC++だが、迷走しつつあるだろ。 さあ、適切なスレに引っ越すか、黙るか、自分の振る舞いを見直そうか。 >>170
> 私は Java 仮想マシンの存在自体がまずいと考えています。
それは後付だ。
当時は各マシン毎に別々にバイナリを用意するのは大変な手間だったし、
実現すれば確かに素晴らしかったんだよ。
で、実際、ある程度実現はしたわけだが、
今現在「マルチプラットフォーム」に関しては完全にWebに取って代わられた。
だからJavaが現在これを宣伝文句に使うことはなくなったが、あって悪いものでもない。
ただ、本質的にはそこは問題ではないんだよ。
エコシステムにとっては、「上質なコードが相当量有る」ことが重要なのであって、
Javaは完全にこれを満たしている。
ネイティブでLLVMを生かしたいのなら、
技術的には、Javaソースコードをネイティブコンパイルするコンパイラを作ればいいだけ。
仕様としてはほぼC++のサブセットなんだから、技術的にはすぐ出来る。
当然GC機構はバイナリに同梱だ。
これだけで、ソースコードを1文字も改変することなく動く。
だから、言語としては「上質なソースコード」が財産なんだよ。
動作環境なんてすぐ変えられる。
現在これが出来ないのは、オラクルが許さないからでしかない。
だから、所有者が変われば変わる可能性もあるだろうさ。
ただ、実験的にはgoogleとかで試されていてもおかしくないし、
音沙汰無しなのは脈無しだとも思うが。
主にJavaについて話したいのなら、Javaスレに移動でこちらは構わない。
その場合はリンクしてくれ。 小学校でプログラミング必修と聞いてBASICやるのかと思ったら
GUI版タートルグラフィックを想定かよ。 後世のために、デジタルテレビにJavaが使われていることを覚えておいてくれ。 Javaと言えば今年の秋にリリース予定のJava11から無償のJDKが廃止されるのがどう影響するかだな
下手すれば一気にシェアを落とすことも考えられる >>176
> Java11
なんだそりゃ?と思って調べてみたら、なるほど酷いことになっている。
171,173は技術面での話で、政治的にはかなり深刻だなこれは。 言うほどひどい変更か?
RHEEとCentOSと同じだろ >>178
Windowsの場合はこことか読めばわかるんじゃないかな。
http://blog.fieldnotes.jp/entry/install-openjdk-on-windows
https://qiita.com/ykubota/items/582caa8621a5fc86d0a1
Linux の場合は何も考えなくても最初から入ってるディストリビューション結構あるのではないか?
少なくとも RHEL, CentOS, Ubuntu のような主要なディストリビューションにはある。
なくても yum や apt で追加可能。 しかし Windows のコマンドプロンプトから curl や tar が使えるようになっていたのは知らなかった。
これは良いな。一々余計なアーカイブソフトを後から入れなくても済む。 > 「上質なコードが相当量有る」ことが重要
フォートラン圧勝 printfでなにか文字表示させた場合と何もしない場合で結果が変わることってありますか? とりあえず、値を取得する系の関数では副作用を起こすような記述はやめような
例えばグローバル変数をいじるとかポインタをいじるとか標準入力・標準出力・ファイル操作するとかはやめろよな
int getValue(int x, int y) {
…
return ○○;
}
こういう関数で printf とかするのは論外
あっ、ちなみに setter でも値の設定だけを行い、標準入力・標準出力・ファイル操作などはするなよ
void setValue(struct MyClass *obj, int x, int y) {
obj->r = x * x + y * y;
obj->theta = atan2(y, x);
}
みたいな感じで とりあえずsetter/getterはクソだな
オブジェクト界最大の汚点だ プログラム言語がサポートしていればそれ程酷いことにはならない
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0) バッチなのですがスペースの問題にぶち当たってます
素敵仕様って言うんですかね?
フルパスから拡張子を抜いたファイル名を取得したいんですが
%^n1でファイル名を取得しているんですが
ファイル名に全角スペースが入っているため完全なファイル名が取得できなく困っています
""で囲っても取得できないです 全角スペースと半角スペースが混ざっていると取得できるのですがなにかいい方法ありますか?
"D&Dで渡したファイルのパスが欲しい"に拘らなければ、テキストファイルにパスリストを書いて読み込むみたいな外部ファイルを使う方法にするとか
Powershellみたいに.Net Framwork呼ぶとか
もしくはファイル名取得用のコンパイルファイルをかますとか
Google先生以上の回答は出ないでしょうか? ■ このスレッドは過去ログ倉庫に格納されています