C言語なら俺に聞け 146

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 839f-AnMQ)
垢版 |
2018/04/30(月) 04:47:37.50ID:XX4FB8lc0
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


C言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
-
※前スレ
C言語なら俺に聞け 145
http://mevius.5ch.net/test/read.cgi/tech/1519046038/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2018/06/22(金) 02:54:33.68ID:Hssdw/9K0
経験の無さ自慢?
特殊なコードに対して特殊な状況を考えられないアホ自慢?
2018/06/22(金) 03:26:32.81ID:+fWpKJrf0
>>233
>>228
2018/06/22(金) 06:50:11.82ID:Hssdw/9K0
特殊な状況が考えられないアホ
2018/06/22(金) 09:18:53.30ID:xGEr9UFx0
暇だと盛り上がるな
そんなに仕事が無いのか
237デフォルトの名無しさん (アウアウカー Sa93-ndvs)
垢版 |
2018/06/22(金) 09:40:17.18ID:TLETRHnoa
自分は特殊な状況を考えられる特別な人と思いたいんですね。わかります。
2018/06/22(金) 09:45:14.96ID:0px4TqJVd
普通の人
考えられないのはアホと言うだけの話
239デフォルトの名無しさん (アウアウカー Sa93-ndvs)
垢版 |
2018/06/22(金) 10:10:27.57ID:TLETRHnoa
なんとしてでも自分以外をアホということにしておきたい。わかります。
2018/06/22(金) 10:39:59.24ID:xGEr9UFx0
特殊な環境でしか生きられないなら、そこから出てくるなよ
2018/06/22(金) 10:54:33.90ID:VkaCaqwn0
実測が基本で、実測が出来ないなら
一般的な環境を想定してシンプルに記述するのが基本じゃないの
2018/06/22(金) 11:42:26.55ID:mMOSdCU40
Q.xxとxxどっちの書き方が速いですか?
A.環境依存
2018/06/22(金) 18:28:15.80ID:0px4TqJVd
まあ明らかな場合もあるけどね

特定の環境用コードなら実測が基本
でも仕事だと全てのパターンを実測してる暇は無い
そこでプロの勘を使う
2018/06/22(金) 19:23:17.01ID:SPkT+A/00
大多数に当てはまるならそれでいい派 VS 1例でも当てはまらないならダメ派
2018/06/22(金) 19:28:58.41ID:0px4TqJVd
特殊なコードに対して大多数とか
2018/06/22(金) 19:40:06.51ID:SPkT+A/00
今回だけじゃないだろ。

「xxxでどうなんですか?」
「(基本的な環境では)xxxだよ」
「いや、xxxxという稀な環境だと当てはまらないからそれは間違いだ!!」

しょっちゅう見かけるわ。
2018/06/22(金) 19:59:19.08ID:/0JmIthOa
命名

 特殊厨
2018/06/23(土) 00:09:39.96ID:PyIuKJwY0
「極稀に当てはまらない場合がある」
  ↓
「だから気を付けよう」→穏便に話が終わる
「そんなことも知らない(思いつかない)のか!!」→荒れる
2018/06/23(土) 00:22:38.81ID:j+rjEHjB0
荒らすのが目的なんだろう
250デフォルトの名無しさん (ワッチョイ 1f9f-GwbS)
垢版 |
2018/06/23(土) 00:38:49.81ID:EFPp8pY40
極稀な事を思いつく自分は頭が良くて偉いと言いたいのでしょう。仕方のない事です。
彼はこれまでずっと馬鹿にされ蔑まされてきたのですから。このような機会がなければ
うっぷんを晴らすことができません。もしここで人を罵倒する事が出来なければ彼は
益々ストレスを溜め鉈を持って新幹線に乗ってしまうかも知れません。もはや誰でも
良いのです。掲示板でこの程度のやり取りで大事件が防げるのならば安いものです。
2018/06/23(土) 00:44:54.58ID:5Wb6fwhKM
「hogeとfugaのどちらが速いのでしょうか?」
「推測するな、計測せよ」
「極稀に当てはまらない場合がある」
「えっ???」
2018/06/23(土) 07:59:41.23ID:9burbaTH0
結局最後はマウント合戦
2018/06/23(土) 08:15:09.58ID:v6rjk3zs0
まあ>>227の指摘はアリだと思うし>>232辺りまでの対応はまあ普通
要するに>>233が無駄に荒らしてるだけ
2018/06/23(土) 10:36:50.42ID:ul2D0Jgq0
>>227も、指摘の内容はいいんだけど、責任とれるのかよなんて攻撃的な言い方するのは余計なんだよね。
255デフォルトの名無しさん (ブーイモ MM43-/QFz)
垢版 |
2018/06/23(土) 10:41:43.05ID:VDaSN7SRM
普通は>>222>>224で終わりだと思うわ
その先は蛇足
2018/06/23(土) 10:41:52.76ID:UiVIxiJp0
技術的な話が出来ない人が人たたき
2018/06/23(土) 10:43:35.40ID:UiVIxiJp0
>>221が速さしか考えてないってのがそもそも素人
2018/06/23(土) 10:47:10.93ID:UiVIxiJp0
memsetが最速とか素人丸出し
2018/06/23(土) 11:04:40.17ID:v6rjk3zs0
>>254
そこら辺は各人の取り方だけど無条件に代入が速いとか言ってる>>223-224が部下だったら俺も同じように言うと思う
2018/06/23(土) 11:14:50.84ID:ONikHNCn0
素人素人と連呼してるやつ
自分が言われて傷ついているんだなw

memsetは速いぜ?
逆汗までしなくとも
ベンチマークくらいしてみたか
2018/06/23(土) 12:36:39.74ID:UiVIxiJp0
パフォーマンス最高な汎用コピー関数など存在しない
2018/06/23(土) 12:40:49.76ID:2drravQ10
memcpyとmemsetの混同か?
2018/06/23(土) 12:44:28.88ID:UiVIxiJp0
ライブラリや開発環境
使える命令やハード
コア数、キャッシュサイズ、アーキテクチャ
クリアするサイズ
アラインメント
クリアするデバイス
データの出現率

こんなことで最速は変わる

memsetが1バイトずつちまちま代入するようなライブラリも世の中にはたくさんある
小規模組み込みの環境では大抵そう
264デフォルトの名無しさん (ワッチョイ 1f9f-6R0o)
垢版 |
2018/06/23(土) 13:39:04.42ID:EFPp8pY40
この頃のCPUだと特定の領域を0にする命令自体が最初からあったりしないのかね?ありそうな感じするんだけど。で、最適化されるとmemsetがその命令一つに置き換わって終わり。
2018/06/23(土) 14:01:42.25ID:v6rjk3zs0
>>262
memcpy って言ってるのは一人だけだしあまり賢くないみたいだから無視していいかと
2018/06/23(土) 14:05:45.27ID:UiVIxiJp0
遅くていいならREP STOSD命令

CPUを使わない方法もいくつか
DMAを使ったり
SRAMの場合デバイスリセットで0クリアされたり
FLASHだとイレースコマンドとか

PCでDMAを使う簡単な方法は
GPUのメモリをゼロクリアしておいて転送する
2018/06/23(土) 14:06:13.14ID:j+rjEHjB0
大抵のCPUにあるだろう
2018/06/23(土) 14:07:19.32ID:UiVIxiJp0
>>262
あ、ごめんコピーじゃなくてクリアの間違い
2018/06/23(土) 14:09:24.26ID:UiVIxiJp0
>>267
普通は無いだろ
REP STOSDだって単なるループ
2018/06/23(土) 14:15:50.50ID:UiVIxiJp0
レジスタからメモリにコピーすると考えれば
コピーでも間違いではないけど
2018/06/23(土) 14:18:09.09ID:xQlm4MUY0
だから実測しろっての
272デフォルトの名無しさん (ブーイモ MM43-/QFz)
垢版 |
2018/06/23(土) 14:42:28.77ID:VDaSN7SRM
>>271
妄想で生きてる奴には何言っても無駄だよ
2018/06/23(土) 14:45:35.16ID:UiVIxiJp0
>>221の回答なら
「環境依存、実測しないとわからない」
で終わり
2018/06/24(日) 12:30:50.34ID:wvlf5m9A0
前工程で処理するのが最善
2018/06/25(月) 12:44:11.34ID:UNYa6OHo0
というか、高速化しなきゃなやばいかなー と思ったのなら
void SAKUJO(dst,size){ memset(dst,0,size); }
くらいクソ適当に書いておいて、「あとで」 ごちゃごちゃいじればよろしい

それか、>>274のように 事前に済ませておく かだな
276デフォルトの名無しさん (アウアウカー Sa93-ndvs)
垢版 |
2018/06/25(月) 12:54:48.48ID://DXoKuSa
ま、しかし、よくよく考えてみれば全てを同じ値で埋めておかねばならない状況はあまりないのではないか?
面倒だから一気に全て0にしておいて後から必要な所を埋めるなんてのはよくあるかも知れないが。
そういうのでも calloc() でメモリ確保するなら考える必要ないよな。
2018/06/25(月) 12:57:20.57ID:ol2B/pPQd
誰がどんな意図で書いたかわからないもの
わざわざ変えなくていいよ
問題があるとわかった時点で考えればいい
2018/06/25(月) 13:16:25.31ID:aMpIUa/b0
0クリアの話題でると思い出す事件があったな
某サイトでは業務Gと制御Gの2グループがあって
制御Gは業務Gの処理(データ値)には介入しないという建前があった
あるレコードを更新する時、その整合性の確認をとるため、
制御Gは、キーとなる構造体をmemcmpして一致の判定していた
業務Gは、処理関数の中で構造体を自動変数として確保し、
メンバーに一つ一つ値を設定していた
キーを指定し更新処理を呼んでも一致するデータが見つからないと
エラーが返される結果となった
何故エラーにされるのか、しばらくの間、原因が分からなかった。
279デフォルトの名無しさん (アウアウカー Sa93-ndvs)
垢版 |
2018/06/25(月) 13:19:21.95ID://DXoKuSa
={0} での初期化を布教した方が良いね
2018/06/25(月) 13:29:18.12ID:ol2B/pPQd
>>278
初心者がいると大変だよね
2018/06/25(月) 20:22:42.87ID:HTnjHonAM
>>278
Paddingのゴミだろ
構造体をmemcmpの時点でダメ
2018/06/25(月) 23:31:05.64ID:LSXBma6V0
みんなわかってるからそんな事いちいち書かなくて良いんだよ
283デフォルトの名無しさん (ワッチョイ 7fd2-XQuB)
垢版 |
2018/06/26(火) 07:01:33.06ID:tL55F/sw0
H8:EEPMOV
2018/07/01(日) 01:54:22.43ID:WAYB1PLl0
すいません質問です
C言語の勉強をしようと思っているのですがIDE?というのが沢山ありすぎてどれを選べばいいのか分かりません!
迷える子羊に何卒ご教授下さいませ・・・
2018/07/01(日) 02:07:14.10ID:8/sCKaWm0
>>284
MSVC(VS)
沢山あるってのがよく分からないが、「入門用」とかいうのは全てゴミだから止めとけ
286デフォルトの名無しさん (ワッチョイ 02d2-ZkQx)
垢版 |
2018/07/01(日) 02:08:06.13ID:T+EQOOQd0
>>284
WindowsならVisual Studio Community
LinuxならEclipse CDT
Macなら標準のXCode
最初はIDE使わないでテキストエディタでやるのがいいとは思うがね
2018/07/01(日) 02:21:34.53ID:8/sCKaWm0
>>284
> 最初はIDE使わないでテキストエディタでやるのがいいとは思うがね (>>286)
これは絶対無いから止めとけ。

環境整備は初心者では無理なので、もし先生がいるのならIDEの立ち上げまではやってもらえ。
そして最初からIDEを使って、ブレークポイント貼りまくってステップ実行し、
納得いくまで変数をウオッチしろ。

C#のIDEなら文法エラーはサジェストが出てOK押すだけで治る。
(C系でそこまでやってくれるものがあるのかは知らん)
括弧の対応すらしてくれないテキストエディタなんて、
今時原稿用紙と手書きで草案を練れ、というようなもの。
勿論それが合う人もいるが、普通はないよ。
2018/07/01(日) 02:37:32.75ID:TDXiV/Pp0
IDEもよくわからん状態からCをやるのはよした方がいいと思うけどなあ
2018/07/01(日) 02:42:30.52ID:8/sCKaWm0
>>288
これはその通り。Cは入門用の言語ではない。
Cしかなかった昔ならさておき、今Cから始める必要はない。
290デフォルトの名無しさん (ワッチョイ 61b3-7NWm)
垢版 |
2018/07/01(日) 02:51:14.35ID:aoQiIM1T0
>>284
IDEでクエスチョンがつくということは、プログラミング初心者と見た。もしそうなら、Cはオススメしない。もっといい言語がたくさんあるので、プログラミングがどういったものであるかを、他の言語でざっくり掴んでから、Cに取り組むことをお勧めする。
その頃には、IDEがなんであるか、どのIDEが自分に向いているかは、もうわかっているはずだ。

どうしてもCに今すぐ取り掛からなければならないという事情があるなら、

MFCを使わなくてはならないなら、visual studio。
そうでなければ、またはターゲットがWindowsでなければ、Eclipse

どちらにせよ、タップリ不幸になれるので覚悟すること。
2018/07/01(日) 03:12:41.99ID:WAYB1PLl0
>>285-290
皆様遅い時間なのに丁寧に答えて下さり感激の至りですありがとうございます
C言語を勉強しようと思っているのは使う予定があるからなんですすいません・・・
取り敢えず教えてもらったものDLして勉強します、重ね重ねありがとうございます!
2018/07/01(日) 03:22:52.22ID:8/sCKaWm0
>>291
> 使う予定があるから
こんなところで聞かずに先生(先輩/上司)に聞け。
IDEの善し悪しも自分で判断出来ない奴が自分だけで「使う」つもりなら事故るから止めとけ。
293デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/01(日) 07:33:37.83ID:VIP13YQk0
Visual StudioにもLinuxターゲットがある。
2018/07/01(日) 08:01:39.26ID:Bxv8fbGo0
ターゲットの問題ではなくて動作環境の問題だろ
LinuxにVisualStudioは入れられないよ
295デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/01(日) 08:04:14.93ID:VIP13YQk0
じゃあWSL使えば。
2018/07/01(日) 08:09:46.71ID:Bxv8fbGo0
何を言ってんだ?
WSLはWindowsだろ
297デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/01(日) 08:19:16.03ID:VIP13YQk0
Windowsのほうがいいし。
2018/07/01(日) 08:40:05.74ID:Bxv8fbGo0
いい悪いではなくてただの事実
自分もVisualStudioは使っているよ
Windows環境では最良のIDEだと思ってる
2018/07/01(日) 11:33:42.78ID:s3Ywi94+0
ポエムや日記用にもテキストエディタの2〜3は入れてていいんじゃないの

それとコマンドプロンプトの併用も考えてるんじゃない
今の時代の「C言語をやる初心者」は、CUIを知らないんだよ
コマンドを使ってみないと、何を何のために作ってるか分からなくなる
巷で言うスマホの「アプリ」とかのGUIじゃなくて、圧倒的に古いCUIなんだから、今の若いモンには明らかに異質なものを作らせるんだよ
出来上がってくるソフトウェアは「黒い窓」なる謎の儀式でしか動かない極めつけの謎だ
2018/07/01(日) 12:41:57.93ID:8/sCKaWm0
つかそもそもEclipseっていいのか?
あれ、Linuxだと他選択肢がないから使われてるだけでは?

Cで使ったことはないが、Windows/NetBeans/PHPはだいぶ酷かったぞ。
もっさりしてるし、不安定だし。
この組み合わせが最悪なだけかもしれんが。
そして一応EclipseとNetBeansは検討対象らしいからな。
(俺的には比較するまでもなくVS>>>NetBeans)

VSとEclipse両方使っている奴いる?いたら感想を。
2018/07/01(日) 14:04:36.18ID:iXNUK265M
今のところvsと肩を並べられるIDEなんてないので当然eclipseもvsより劣るわけだが、
リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
独自環境用の多数のIDEがオープンソースのeclipseから派生して作成されてるので、個々に使い方を覚えなくていいのもメリットかもしれない。
使い始めた頃はプロジェクトとビルドルールの管理と、日本語が独特なのが、取っ付きにくかったかな。

まあ言いたかったことは、vscode輝け
2018/07/01(日) 14:34:44.13ID:8/sCKaWm0
>>301
> リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
それってCについてだよな。MSはVSについてはC#しかやる気出して無いから。なお、

Q. どうしてVC++のエディタはC#に比べて糞なのですか
A. だってお前らどうせemacsとか使ってエディタ機能使わないじゃん(なお公式)

だったはず。
そのとき、「え?そんなに違うんか?」と思って試し、その差に愕然とした覚えがある。
俺は最新環境を使ってはいないが、最新でもだいぶ見劣りしたと記憶している。

リファクタリング機能とかはユーザがアドオン書けた方がいいから、
それもあってVSCodeなのだろうね。
2018/07/01(日) 16:25:12.59ID:skMhceRea
Cぐらいならvimだけで十分だと思うがな
2018/07/01(日) 16:35:43.45ID:jK3pbtIRa
まずvimの操作を覚えて、開発するならそれなりのプラグイン入れなきゃならないんですがそれは
2018/07/01(日) 16:45:23.34ID:skMhceRea
ブラグインなぞ不要
2018/07/01(日) 17:12:51.78ID:KJj1sYCg0
仕事や学校でCを使う予定があるなら、
現場で使ってる開発環境に合わせるのが最善だろう。
IDEの優劣よりも優先されるんじゃないかな。

今のご時世にCに関してまったくの素人だと、
Cを使うのにIDEが必須と勘違いしてる可能性もあったり。

任意のテキストエディタで.cファイルを打ち込んで
コマンドラインでコンパイル、実行という手順が
紹介されてない入門書や入門サイトがあるかも。
2018/07/01(日) 17:13:26.42ID:8/sCKaWm0
>>305
それはさすがに老害の発想だぜ。

今時のemacsはインテリセンスも出るし、
flyCheckで文法エラーもリアルタイムで表示される。
お前はそういうの知らずに言ってるだろ。
(なお、vimも同様だったはず)

最終的にはそういうのがうざくなって色々切ったりするけど、
俺は初心者こそIDE(というかゴテゴテの環境)でスタートすべきだと思ってる。

大体において、
「動きません。でも私のコードは完璧です。これはIDEのバグですか」と言ってくるんだから、
「ブレークポイントを全部の行に置いてループも1回ずつステップ実行して確認して死ね」
と返せないと意味無いだろ。
2018/07/01(日) 17:22:47.54ID:8/sCKaWm0
>>306
> 紹介されてない入門書や入門サイトがあるかも。
VSがそうですが何か?(なおC++)
https://msdn.microsoft.com/ja-jp/library/jj620919.aspx

てかマジな話、VSで閉じていいのならそんな知識いらんて。


> 現場で使ってる開発環境に合わせるのが最善だろう。
> IDEの優劣よりも優先されるんじゃないかな。
これはその通りだが。
2018/07/02(月) 00:22:55.41ID:MZb/U4ur0
>>300
>つかそもそもEclipseっていいのか?
>あれ、Linuxだと他選択肢がないから使われてるだけでは?

組込みだとマイコンのメーカーのIDE(コンパイラ)が
EclipseベースなIDEな事があるから
VSではなくEclipseに馴れるって意味で選択する意味はあるかな

実際組込み現場でCでの開発想定したこの書籍だと
Eclipseで開発する事を想定して書かれてる
http://amzn.asia/5PyjxPA


あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
マルチプラットフォームで動くVSCodeやAtom選択した方が
学習コストも少なく高機能だと思うんだけど
2018/07/02(月) 01:24:09.53ID:Ael8RIVm0
>>309
> EclipseベースなIDEな事があるから
なるほどね。

> あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
俺が勧めているわけではないが、「エディタ」という意味ではありだ。
「Emacsは100年のエディタだ」と言われるとおり、あれはマジで100年持つだろう。
そういう構造になっているし、実際今も余裕で現役だ。(Vimも同様)

最大の利点はDSLとしてのEmacsLispだ。(なお独立して使えるらしいが)
この点、VSCodeやAtomもOSSであり同レベルの拡張性を持ってはいるが、
ユーザーベースが違いすぎる。
今現在の状況なら、先に死ぬのはVSCodeやAtomの方だ。

学習コストなんて所詮慣れだし、数ヶ月もあれば問題ない。
当面使う予定がなければすぐに学ぶ必要性はないが、
時代遅れな事を肯定して欲しいのならそれは無理だ。

emacsとgdbは組み合わせて使うことは出来る。
ブレークポイント、変数等を表示出来るlispが提供されればそこそこ行けるはず。
もう既にあるかもしれんが。
2018/07/02(月) 20:45:33.13ID:egmwRQ41d
フォルダ一括コピーしたいです

c++だとファイルコピーにはCopyFileなるものがあるみたいなのだけどそれはフォルダのコピーはできないようなので、
他のものを探してたらSHFileStructでフォルダまるごとコピーができると知りました
これって再帰的に中身まで見てくれるのか見てくれないのか調べてたのですがわからなかったので
再帰的にコピーしてくれるか否か教えてほしいです
2018/07/02(月) 20:57:38.07ID:TkxJyVOaM
>>311
1つ目の回答みて
https://stackoverflow.com/questions/4725115/on-windows-is-there-an-interface-for-copying-folders
313デフォルトの名無しさん (ワッチョイ 119f-qY4E)
垢版 |
2018/07/03(火) 00:01:21.27ID:Dmx6jLMV0
>>311
そういうのはOSによって、あるいは使用するライブラリによってやり方が変わるから最低でもOSが何なのか書いて質問した方が良い。
2018/07/03(火) 01:16:11.07ID:F02z+tBP0
学生ならCLionも無料なのでおすすめ
VSCodeもまだ情報が少なめなものの悪くない
2018/07/03(火) 04:58:38.26ID:YXzbwHDm0
system("robocopy /? >tmp.txt");
system("notepad tmp.txt");
2018/07/03(火) 05:54:36.73ID:2wRh2EpV0
>>311
やって見りゃいいんじゃね?

>>313
>>311みてOSわからないボンクラは黙ってて
2018/07/03(火) 07:45:07.06ID:A8S8VjkX0
知らないなら書くなよ
318デフォルトの名無しさん (ワッチョイ 45fa-2e90)
垢版 |
2018/07/04(水) 21:52:51.64ID:gFgZc5FG0
HTQ
2018/07/04(水) 22:46:28.27ID:w3aVzChY0
やればわかる
やらない奴はいつまでたっても>>317みたいなボンクラなレスを返すだけ w
2018/07/04(水) 22:55:43.62ID:r5w7GwDZ0
迷わずいけよ!
2018/07/04(水) 23:02:16.01ID:dy7fWBja0
xcopyを呼び出すんじゃ駄目なのか?
車輪の何とかって気がするんだが
2018/07/05(木) 09:24:52.06ID:ppxwAApK0
SHFileOperation() はコピー先にフォルダが無い場合、再帰的にフォルダ作ってくれるね
ただ SHFILEOPSTRUCT の pTo に渡すパス文字列で
ディレクトリのセパレータが / はダメで \ じゃないと再帰がかかってくれない

D:\ 以下フォルダが無い状態で
pTo = "D:/aaa/bb/ccc/ddd";
SHFileOperation()
⇒ 「フォルダ ddd が作れない」  D:\ 以下のフォルダ状態は変わらず

pTo = "D:\\aaa\\bb\\ccc\\ddd";
SHFileOperation()
⇒ D:\aaa\bb\cc\ddd まで再起的にフォルダができる
2018/07/10(火) 12:40:53.64ID:PTerA0wX0
超初級で申し訳ないですが、以下のコードのどこに問題があるのか教えてください。
円の周長と面積を求めるものです。(半径は整数値で入力。)
コンパイルはできましたが、.exeファイルが実行不能状態です。


#include<stdio.h>
main()
{

int hankei;
double pi = 3.1415926535;
double enshu;
double menseki;

printf("半径を入力して下さい:\n");
scanf("%d",&hankei);

enshu = 2 * pi * hankei;
menseki = pi * hankei * hankei;

printf("半径%dの円の円周は%lfで、面積は%lfです", hankei, enshu, menseki);

}
324デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 12:51:36.15ID:lacLn2e2a
>>323
実行不能状態とはどのような状態か詳しく書くように。
2018/07/10(火) 13:17:53.02ID:G1Ywym5SM
>>323
ソースコードは問題ない。
戻り値型省略が警告になるくらい。

エスパーすると、
警告をエラー化するオプションが指定されていて、最新コードを実行しているつもりが古いコードを実行していたとか。

もしくはソースコードを直接実行しようとしているとか。
326デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 13:45:26.21ID:lacLn2e2a
ま、何れにしてもどういう環境で何をやってどうなったか詳細書いてくれんとわからんな。
WindowsでEclipse使ってる場合とLinuxでvimで入力してgccでコンパイルしている場合では答えが大幅に変わるし。
exeと書いてあるからWindowsだろうと予想することはできるが実はWindowsじゃなくてexeが作られるものと誤解しているだけなんてことも初心者ならありうるしな。
2018/07/10(火) 14:15:20.90ID:PTerA0wX0
Windows 10の開発者コマンドプロンプトでコンパイルしました。 cl (ファイル名).c
拡張子がexeのファイルが生成されました。

そのexeファイルをダブルクリックすると、マカフィーによって「脅威を隔離しました」というメッセージとともに削除されてしまいます。
何度やってもそうなります。
2018/07/10(火) 14:48:20.63ID:6oP6Hy+LM
知らぬ間に凶器を生み出してしまったんだね…
https://r.nikkei.com/article/DGXNASFK2001L_Q1A620C1000000

マカフィーを一時的に止めちゃえば?
2018/07/10(火) 14:51:13.47ID:jUw0TWzI0
マカフィーが止めなかったら人類はその瞬間、消滅していたかも知れない
330デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
垢版 |
2018/07/10(火) 15:35:28.40ID:c95ZcwpDa
この頃は単にコマンドプロンプトと呼ばずに頭に開発者って付くのか?
2018/07/10(火) 15:52:40.79ID:sLQCr7o90
コマンドプロンプト上で実行したらどうなる?
cl で実行ファイルを作ったら、そのままコマンドプロンプトで
実行ファイルの名前を打ってEnter、で動くと思うけど。

コンソールアプリケーションをダブルクリックで実行した場合、
scanf系の標準入力に必要なコンソールってどうなるんだっけ?
2018/07/10(火) 16:44:44.45ID:b+i389ju0
Windows10(17134.137) + VisualStudio2017(Ent15.7.4) の開発者コマンドプロンプトで確認してみたけど問題ない
https://i.imgur.com/SZMlQ7g.png
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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