0からの、超初心者C++相談室
1 :デフォルトの名無しさん :2018/11/12(月) 14:55:13.35 ID:Tf74ZWQr.net 何にも知らない0からの出発、超初心者のためのC++相談室
103 :デフォルトの名無しさん :2020/05/09(土) 06:15:34 ID:LKKpAq9a.net とりあえず stundent は誤りで正しくは student だとして 多くの場合、配列名は「配列の先頭要素を指すポインタ」と解釈される、から。 つまり配列studentについて student == &student[0] が成り立つ。 *演算子を作用させて *student == *&student[0] == student[0] よって sizeof *student == sizeof student[0] ここで注意すべき点は「配列名がsizeof演算子のオペランドになった場合は 配列の先頭要素を指すポインタとは解釈されない」ってこと。 sizeof 配列名 == 配列全体が占有するメモリ容量 なぜそうなっているか、という理由は「そう決めると便利だから」かな。 Cの頃からそういう感じでプログラム書いてたから、という歴史的経緯もある。 >>102 初心者をからかっちゃアカンよ。信じちゃうかも知れん。
104 :デフォルトの名無しさん :2020/05/09(土) 09:28:26 ID:3rxWY8lS.net コロチャンもゲイツの陰謀とか言ってる人が居てわろす 温暖化も陰謀ω
105 :はちみつ餃子 ◆8X2XSCHEME :2020/05/09(土) 10:52:17 ID:MmeKQuXy.net >>99 「暗黙の型変換」によって配列がポインタに型変換されるルールがある。 スムーズにポインタとして使えてしまうから混同してわけわからんようになる初心者が多いんだけど、 あくまでも別物であるという理解が出来ているなら入門者としてはかなり優秀だと思う。 ほとんどの場合に配列はポインタに暗黙に型変換されるんだけど、 例外としては ? sizeof を適用するとき ? 単項の & を適用するとき ? 参照で受け取るとき があって、これらの状況では型変換されずに解釈される。 ---- 余談だけど暗黙の型変換とは別に仮引数の調整というのもあって、 関数の仮引数として配列を書いた場合も配列はポインタに調整される。 たとえば void foo(int a[10]) {} という定義を書いたら void foo(int* a) {} と全く同じように解釈される。
106 :デフォルトの名無しさん :2020/05/11(月) 03:00:46 ID:II69MMpE.net すいませんロベール持ってる人にお聞きしたいのですが 305ページの for (int i = 0, size = a.Size(); i < size; ++i) という文があるのですが このsizeというローカル変数は何処に定義されてるんでしょうか?
107 :デフォルトの名無しさん :2020/05/11(月) 05:46:42 ID:k4wInV7m.net >>106 “ロベール本”を持ってないので答えられない立場かも知れんけど…。 この size は「ここ」で定義されているんだと思うよ。 for の初期化式 int i = 0, size = a.Size(); で、 「int の i」と「int の size」という2つの変数を定義している。
108 :デフォルトの名無しさん :2020/05/11(月) 07:45:03.87 ID:II69MMpE.net >>107 forの中で2つ宣言できるんですね!そんな事も知りませんでした。 ありがとうございます。
109 :デフォルトの名無しさん :2020/05/11(月) 09:53:48 ID:MhpqGE2N.net 型が違うときは? for (long i = 0, int size = a.Size(); i < size; ++i)
110 :デフォルトの名無しさん :2020/05/11(月) 19:53:43.37 ID:8B6Lebzi.net C++17なら for (auto [i, size] = tuple(0L, a.Size()); i < size; ++i)
111 :デフォルトの名無しさん :2020/05/21(木) 23:33:00 ID:fIo5j0A9.net class DataStore { public: DataStore(int v) : mValue(v) {} bool operator==(const DataStore& rhs) const; private: int mValue; }; bool DataStore::operator==(const DataStore& rhs) const { return mValue == rhs.mValue; } int main() { DataStore ds1(10), ds2(10); if (ds1 == ds2) {} } というのがあるんですがoperatorに記述されてる仮引数はどっから実引数をコピーしてるのですか? 後演算子のオーバーロードに関して分かりやすく解説してるとこあれば教えていただけると嬉しいです
112 :デフォルトの名無しさん :2020/05/21(木) 23:57:47 ID:ut4Weg2U.net operatorも、ただの関数 if (ds1.operator==(ds2)) {}
113 :デフォルトの名無しさん :2020/05/22(金) 00:55:03.99 ID:H9gcgSgg.net const DataStore& rhsの実引数はds1ってことですか?
114 :デフォルトの名無しさん :2020/05/22(金) 06:44:02 ID:8neFOyTD.net この流れだと、仮パラメータ rhs にバインドされる実引数は ds2 でしょ。 クラスのメンバ関数として宣言された2項演算子の operator OP(rhs) は、 lhs OP rhs と書くと lhs.operator OP(rhs) が呼び出される。 …と書いても分かりにくいね。 具体的には ds1 == ds2 と ds1.operator==(ds2) が同じ意味、 ってのが >>112 の人の言ってること。
115 :デフォルトの名無しさん :2020/05/22(金) 09:23:45 ID:JweU/zGV.net 余談だけど左右の引数が const な比較演算子は非メンバ関数として実装した方が好ましい場合が多い。 (標準ライブラリでもだいたいそうなってる。)
116 :デフォルトの名無しさん :2020/05/22(金) 12:29:55.77 ID:6NFPH2hn.net constかどうかで決めるのはアホ
117 :デフォルトの名無しさん :2020/05/30(土) 06:36:15 ID:1Zwy+dfa.net なぜ文字から'0'を引くと数字を数値に変換できるのですか? char c='8' int a=c-'0' 理屈がよくわからないです。 よろしくお願いします
118 :デフォルトの名無しさん :2020/05/30(土) 07:25:50 ID:/FCD7s4m.net 順番に並んでいるから。
119 :デフォルトの名無しさん :2020/05/30(土) 07:33:59 ID:1Zwy+dfa.net 文字コードが順番に並んでるのは分かったのですが なぜ'0'引くとキャストせずにint型の変数に代入できるようになるかが分かりません よろしくお願いします
120 :デフォルトの名無しさん :2020/05/30(土) 07:57:34.41 ID:/LdiluDZ.net '0'を引かなくてもキャストせずにint型の変数に代入できるよ c/c++では文字は整数型に文字コードを入れて扱うんだよ
121 :デフォルトの名無しさん :2020/05/30(土) 08:07:04.11 ID:1Zwy+dfa.net 苦しんで覚えるC言語という本の255ページに ”数字を使うときには引き算で本来の数値を知ることも出来ます。 数字に持っ文字の番号が割り当てられており例えば'0'は48番に割り当てられてます。 数字から'0'の番号を引き算すれば数値に変換され計算に使用できます。” とあるんですが ”数字から'0'の番号を引き算すれば数値に変換され計算に使用できま”というのが意味わからないです
122 :デフォルトの名無しさん :2020/05/30(土) 08:27:53 ID:CZP1xQZw.net 文字が元々数値(文字コード)であることが理解できてないのでは ASCIIコード表でググってみれ
123 :デフォルトの名無しさん :2020/05/30(土) 10:03:05.95 ID:/LdiluDZ.net 2に3を足す時、 int a = 2; int b = 3; int c = a + b; とやるとc == 5になる int a = '2'; int b = '3'; int c = a + b; とやってもc == '5'にはならない 今やほぼASCIIだからc == 'e'になる int a = '2' - '0'; int b = '3' - '0'; int c = a + b; とやるとc == 5になる '0'から'9'まで連続していることはcの規格が強制してるから これが”数字から'0'の番号を引き算すれば数値に変換され計算に使用できます”の意味
124 :デフォルトの名無しさん :2020/05/30(土) 16:37:51 ID:A5Abb6S3.net char c = '8'; // '8'を表す文字コードの値(ASCIIでは56) char型 // '0' ... '0'を表す文字コードの値(ASCIIでは48) char型 // c - '0' ... '8'を表す文字コードから'0'を表す文字コードを引いた値(==8) char型 int a = c - '0'; // char型の数値8 で int変数a を初期化・代入 一般にint変数にchar型の値を格納することは認められている。 思うに「'8' - '0' が 8 になる」('8'の文字コードでなく「タダの8」) という部分に引っ掛かってるんじゃなかろうか。
125 :124 :2020/05/30(土) 16:49:13.96 ID:A5Abb6S3.net すまん 124 は間違ってるみたい、忘れてくれ。 char c = '8'; // '8'を表す文字コードの値(ASCIIでは56) char型 // '0' ... '0'を表す文字コードの値(ASCIIでは48) char型 // c - '0' ... '8'を表す文字コードから'0'を表す文字コードを引いた値(==8) int型 int a = c - '0'; // 数値8 で int変数a を初期化・代入 思うに「'8' - '0' が 8 になる」('8'の文字コードでなく「タダの8」) という部分に引っ掛かってるんじゃなかろうか。 '8' - '0' は「char型の8」ではなく「int型の8」だね。(以下検証コード) std::cout << "sizeof('8') == " << sizeof('8') << '\n'; std::cout << "sizeof('8'-'0') == " << sizeof('8'-'0') << '\n';
126 :デフォルトの名無しさん :2020/05/30(土) 18:38:26.55 ID:1Zwy+dfa.net >>125 そういうことでしたか。 詳しく噛み砕いていただきありがとうございます。
127 :124 :2020/05/30(土) 19:18:59.52 ID:A5Abb6S3.net 型の検証はC++11なら直接的にできるね。 #include <typeinfo> ... std::cout << "'8' is " << typeid('8').name() << '\n'; std::cout << "'8'-'0' is " << typeid('8'-'0').name() << '\n'; 実装定義の型の名前を得られる。
128 :デフォルトの名無しさん :2020/06/05(金) 17:55:42 ID:8OoEw/S/.net なかなか、適当なスレを見付けるのが難しいわい C++ 且つ初心者だから、ここでいいのかな subroutine で、例えば、boolean と string のふたつの変数の値を return するには、やっぱり std::map を使うのが一番簡単でしょうかね?
129 :デフォルトの名無しさん :2020/06/05(金) 18:21:06 ID:Uv2w5eYU.net std::pair<>じゃないのか? https://ja.cppreference.com/w/cpp/utility/pair
130 :デフォルトの名無しさん :2020/06/05(金) 19:03:13.94 ID:8OoEw/S/.net うーん、なんとなくそうおもいます、ええ
131 :デフォルトの名無しさん :2020/06/05(金) 19:06:38.66 ID:8OoEw/S/.net あ、では、boolean, string, int の三つをreturn するには普通どうやるのが王道でしょうか?
132 :デフォルトの名無しさん :2020/06/05(金) 19:08:18.91 ID:8OoEw/S/.net 連投すまん。 std::tuple ですか。
133 :デフォルトの名無しさん :2020/06/05(金) 19:12:47.23 ID:Uv2w5eYU.net たぶんそうだとお芋ます、ええ。 あと、コンテナに突っ込みたいときにはstd::variantなんかも良く使います。 今回は関係なさそうですが。
134 :デフォルトの名無しさん :2020/06/21(日) 13:29:09 ID:hTPD8Gtd.net >>131 王道かどうかは知らんが、C++17以降なら auto func() { return std::make_tuple(a, b, c); } auto [f, s, n] = func(); っていう風にできるで
135 :デフォルトの名無しさん :2020/06/21(日) 16:38:41.93 ID:rRP2z2l8.net std::tie の方が好き
136 :デフォルトの名無しさん :2020/06/22(月) 16:40:35.96 ID:sjaABjGh.net C++でint[変数]というようなことが出来ないのはstack overflow防止のためなんでしょうか?
137 :はちみつ餃子 :2020/06/22(月) 16:50:40.23 ID:H8+bL0cM.net >>136 原則として型は大きさが決まっているもんなので、そうでないものがあるとややこしいんだわ。 (配列の大きさは型の一部。)
138 :デフォルトの名無しさん :2020/06/22(月) 20:24:27.49 ID:83jG8pXe.net Cの新しいのだと出来る
139 :はちみつ餃子 :2020/06/22(月) 22:04:26.97 ID:H8+bL0cM.net >>138 新しいの……? C99 で出来るようになったけど C11 以降ではオプショナル扱いなんだわ。 そして今年は 2020 年なんだわ。
140 :デフォルトの名無しさん :2020/06/22(月) 23:23:01.67 ID:rtw5aKlF.net Cは89/90が基本
141 :デフォルトの名無しさん :2020/06/23(火) 01:32:00.34 ID:UY2AjBBL.net 以下のコードは比較関数をSTLのlistに渡す為のものなのですが これを最新のVC++でコンパイルできるようにするにはどう書き直せばいいでしょうか? typedef SubType* LPSUBTYPE; template<> inline bool greater<LPSUBTYPE>::operator() (const LPSUBTYPE& pObj1, const LPSUBTYPE& pObj2) const { … }
142 :デフォルトの名無しさん :2020/06/23(火) 09:26:35 ID:RMSfHJVB.net >>141 エラーメッセージを読んで問題点を解決するように書き直すといいよ。 list に比較関数は渡せないと思うので前提が間違ってそうな気もする。
143 :デフォルトの名無しさん :2020/06/29(月) 08:08:09.53 ID:PYBXxpGI.net VC++についての質問になってしまうのですが、C#のようにソースファイルをリンクとして追加することは出来ないのでしょうか?
144 :デフォルトの名無しさん :2020/06/29(月) 18:23:34.98 ID:gWW+3u18.net C#と違って「既存の項目」で追加したものに関してはコピーされずに参照扱いだよ 作業フォルダ下以外のファイルをそうやって追加した場合は追加のインクルードディレクトリも設定しないとダメだけど
145 :デフォルトの名無しさん :2020/09/08(火) 02:57:29 ID:ZBc9FXfY.net 何で構造体のchar配列は直接値が代入できず strcpyを使う必要があるのでしょうか?
146 :デフォルトの名無しさん :2020/09/08(火) 03:20:04.77 ID:jacy6RM2.net できるよ struct A { int x; char b[4]; } a = {0, 1, 2, 3, 4};
147 :はちみつ餃子 :2020/09/08(火) 05:15:54.57 ID:QZgDAT7o.net >>146 それは代入ではなくて初期化
148 :デフォルトの名無しさん :2020/09/08(火) 05:56:11.78 ID:ZBc9FXfY.net typedef struct { char str[32]; }A; int main(}{ A a; a.str="aaa"; } これができないってことです 言葉足らずですいません
149 :デフォルトの名無しさん :2020/09/08(火) 08:44:00.12 ID:h4K4tlm9.net int main(void) { int arr[5]; arr = 3; } ができないのと同じ理由です
150 :デフォルトの名無しさん :2020/09/08(火) 09:53:15.41 ID:zoI9JNor.net かわいいw
151 :デフォルトの名無しさん :2020/09/08(火) 10:55:42 ID:0vfIbeP0.net ちょっと忘れたから、推測だけど、 a.str="aaa"; "aaa" を右辺で使うと、先頭要素のアドレスに変換されるとか? 例えば、4バイトのサイズで、10〜13 アドレスに存在する場合に、10が代入されるとか char str[32]; 一方、ここにはアドレスじゃなくて、aaa\0 という4バイトの実体を代入しないといけないとか
152 :デフォルトの名無しさん :2020/09/08(火) 11:16:05 ID:h4K4tlm9.net 意図してるだろうことを無理してやるなら str[0] = 'a'; str[1] = 'a'; str[2] = 'a'; str[3] = '\0'; でできる.そしてこれをするためにstrcopyがある
153 :デフォルトの名無しさん :2020/09/08(火) 15:36:44.61 ID:JkCXGknl.net >>148 型が違うし
154 :デフォルトの名無しさん :2020/09/08(火) 15:57:15.69 ID:SNM207t1.net 出来ない訳じゃないんだよな typedef struct { char b[4]; } A; int main(void) { A b = {1, 2, 3, 4}; A a; a = b; // ok a.b = b.b; // bad return 0; } 自分で for で配列要素代入すれば良い訳で 面倒だから memcpy や strcpy 使ってるだけ
155 :デフォルトの名無しさん :2020/09/08(火) 16:02:13.68 ID:JkCXGknl.net >何で構造体のchar配列は直接値が代入できず 構造体のchar配列だけじゃなくて ただのchar配列でもダメだろ 宣言と同時に代入してるときはたまたま出来るだけ int main() { char a[4] = "abc"; // OK char b[4]; b = "abc"; // BAD return 0; }
156 :デフォルトの名無しさん :2020/09/09(水) 20:41:42.30 ID:s+S5qxFe.net >char a[4] = "abc"; // OK これがおkなのは、cの言語仕様におけるほんの雀の涙猫の額ばかりの文字列サポート たまたま、ってw
157 :デフォルトの名無しさん :2020/09/09(水) 23:49:08.55 ID:N/YnHGom.net はじめたころは、こういうことにいちいちひっかかってたな… わかっちゃえば、慣れちゃえばどーってことないんだけど
158 :デフォルトの名無しさん :2020/09/10(木) 00:06:01.62 ID:Qspm/kAl.net 同じようでいて、初期化と代入では見た目の作用がことなることがあるね
159 :デフォルトの名無しさん :2020/09/10(木) 00:07:00.73 ID:Qspm/kAl.net 見た目「と」作用が
160 :デフォルトの名無しさん :2020/09/10(木) 15:36:27 ID:rLZBXCmM.net a も b も代入禁止だ
161 :デフォルトの名無しさん :2020/09/19(土) 09:19:26.77 ID:z/ngkL1p.net >>157 常に初心に返ることで新たにわかることもある
162 :デフォルトの名無しさん :2020/09/21(月) 06:30:22.99 ID:GP+Uv9qA.net C#ですいません usingとnamespace名前空間を使う意味について本で解説されてるんですが文字だけしか書かれてなくて イマイチ言ってる意味がわからないので 簡単なコードを用いてnamespaceを使う意味を教えて欲しいです
163 :デフォルトの名無しさん :2020/09/21(月) 10:35:12.49 ID:M8W5JifW.net 文字だけじゃないコード・・・
164 :デフォルトの名無しさん :2020/09/21(月) 11:38:59.68 ID:xNmUS8x8.net 寿限無名予防以外の目的?
165 :デフォルトの名無しさん :2020/09/21(月) 11:59:08.18 ID:IzAwgxqY.net >>162 C#よくわかってないけど こういうことが知りたいの? https://ideone.com/SP3uBF
166 :デフォルトの名無しさん :2020/09/21(月) 21:53:00.21 ID:GP+Uv9qA.net >>165 すいません、そういうことです。 usingについてはおかげさまで意味が分かりました。ありがとうございます。 namespace名前空間?と言うもののメリットと言葉の意味がいまいち分からないのですが、 どっからどの部分までが名前空間なのでしょうか
167 :デフォルトの名無しさん :2020/09/21(月) 23:03:56.25 ID:IzAwgxqY.net >>166 namespaceがなかったら たとえば自分でなにか作ってるときとか、そこには自作のメソッドの定義があるわけで さらに公開されてるライブラリを使いたくなって、いざそこに組み込んだとき、 自作のメソッドと同名のメソッド名がライブラリ内で定義されてたらコンパイルエラーが発生する (重複定義された場合はコンパイラからすればどちらを呼び出していいかわからない) みたいな事態が発生してしまう さっきの例だと同名のメソッド(Console.WriteLine)を定義してても System名前空間とMyNS名前空間で分けたからコンパイルが通る System.Console.WriteLine(s); // Console.WriteLineはSystemに属するもの MyNS.Console.WriteLine(s); // Console.WriteLineはMyNSに属するもの namespace Hoge { // {}内はHoge名前空間に属する }
168 :デフォルトの名無しさん :2020/09/22(火) 06:36:29.84 ID:ZtayyY2i.net 完全にC++の感覚でしか説明できんけど、 あるライブラリを開発する上で、そのライブラリ全体がnamespaceで囲われていると、 ライブラリ作者は大抵その名前空間内でコードを書くから、いちいち名前空間を指定する必要は無い さらに>>164 の言うように、名前空間がライブラリや機能を表しているから、その中のコードは短い命名に出来る ライブラリ利用者側からすると打鍵数は変わらない(か、下手すると増える)けど、その名前をよく使うソースコードなら、usingで取り込むことも出来るし、あまり使わないなら取り込まず毎回指定してもいい(その場合名前重複の心配もない) こういう取捨選択は、関数・クラス名に全部ライブラリ名や機能名のプレフィックスが付くような命名だと出来ないこと あと_privateみたいな名前空間に関数を書けば、ユーザーが触る必要の無い関数を隔離出来る(使用を禁止までは出来ないけど、補完の候補に出てこないのは便利
169 :デフォルトの名無しさん :2020/09/22(火) 13:09:23.63 ID:iGBGeTHm.net 名前空間を使うと検索性が最悪になる (別の名前空間の同一名称が引っ掛かりまくる) みんなどう対処しているんだろう
170 :デフォルトの名無しさん :2020/09/22(火) 17:08:47.15 ID:QYfnOwKH.net >>169 using namespaceするのが問題じゃない?
171 :デフォルトの名無しさん :2020/09/22(火) 17:49:49.66 ID:ZtayyY2i.net いやusingに限らず、例えば>>168 で言ったライブラリ作る側(名前空間内で作業する側)はいちいちhoge内なのにhoge::とか書かんでしょ 確かに検索で困ることはたまにある・・
172 :デフォルトの名無しさん :2020/09/22(火) 19:24:25.17 ID:Xh0fS725.net namespace で絞り込んで、識別名をハイライトして、あとは気合
173 :デフォルトの名無しさん :2020/10/20(火) 13:37:38.41 ID:Mso39Itu.net C++とVisual C++の違いについてです。 C++はプログラミング言語であり、 VC++は統合開発環境であるという説明があります。 でも私にはVC++がC++++のように見えます。 VC++はC++の文法に新たな流儀を付け加えるか置き換えていて 言語そのものの使用を若干変えているように見えます。 C++のキーワードが別のものに置き換わっていたりするからです。 そのため、C++を勉強したあとにVC++を学ぶと違う言語を学んでいるように感じます。 この理解は正しいでしょうか。
174 :デフォルトの名無しさん :2020/10/20(火) 13:38:19.99 ID:Mso39Itu.net 使用改め仕様
175 :デフォルトの名無しさん :2020/10/20(火) 14:39:40.58 ID:C+6cO9mm.net 多少違うのは #pragma くらいだろ 勝手に仕様なんて変えない 統合環境とか API とかはもちろん関係無い話
176 :デフォルトの名無しさん :2020/10/20(火) 20:36:08.28 ID:3YoHPXFg.net IDEはVisual Studio VC++はMSのC++商品名 C++/CLIとかを混同してね? これはC++を独自拡張したものだよ
177 :デフォルトの名無しさん :2020/10/20(火) 22:21:46.71 ID:qSDH25Or.net __declspec(dllimport)とかアホみたいに書かされたあの時代のmsvc拡張c++のことでしょ
178 :デフォルトの名無しさん :2020/10/21(水) 11:12:14.17 ID:xBgAWF1Y.net 描かずに済むけどな
179 :デフォルトの名無しさん :2020/10/21(水) 13:51:50.76 ID:WStrtR1y.net C++/CLIは拡張ですか? いくつかの流儀を置き換えていますよね? ポインタをハンドルと読んだり?
180 :デフォルトの名無しさん :2020/10/21(水) 14:12:49.21 ID:xLl2qqDk.net MS拡張にしろC++/CLIにしろ既存のコードの挙動を変えるようなことはしてないんでは? 拡張でいいんじゃね
181 :デフォルトの名無しさん :2020/10/21(水) 18:58:32.20 ID:VaRlK94m.net ポインタはポインタとしか言わんよ ハンドルは
182 :デフォルトの名無しさん :2020/11/24(火) 23:02:59.67 ID:uO0ONWsd.net Visual Studio 2019をインストールしました Windowsスタートボタン→Visual Studio 2019を起動しました プロジェクト名を入れて下さい→test001 保存フォルダの場所を決めて下さい→Y:\_source\repos 何かのウインドウが開きました(おそらく開発の統合画面?) さっそく1行目から入力しようとしましたが、キー入力を受け付けてくれません 左の縦に、ツールボックスと表示しています このままでは進まないので、エクスプローラーでreposフォルダの下に samp01.txtを新しく作りました 何かのウインドウに戻り、samp01.txtを開くと文字入力が可能になりました 進め方が間違っているように思えますが、samp01.txtに#define...から 描き始めてよいでしょうか? 統合環境が苦手で、フォルダにテキストファイルを作りテキストエディタで ソースを書いて保存 コマンドラインでコンパイル、エラーがなければリンク...をしてきました 何かの画面には難しそうなソリューションエクスプローラー、その下には プロパティウインドウが表示されています。 このウインドウにも慣れないといけないので進め方を教えてください
183 :デフォルトの名無しさん :2020/11/25(水) 07:42:29.85 ID:+VuDDc3z.net >>182 とりあえずこれに従えばおk https://docs.microsoft.com/ja-jp/cpp/build/vscpp-step-1-create?view=msvc-160
184 :デフォルトの名無しさん :2020/11/25(水) 08:12:43.79 ID:1cagBqIs.net >>182 俺は、テキストエディタでソースを書いて、c規格で拡張子cppで保存して、 Visual Studioで、 コード無しで続行→ ファイル→開く→フォルダ で、コンパイルしてますがね。
185 :デフォルトの名無しさん :2020/11/27(金) 09:48:07.00 ID:sDMv6Edh.net >>182 ソリューションを作るときに大雑把にどんなもの作るって指定すれば 最低限のファイルができて編集可能な状態になるんじゃないの?
186 :デフォルトの名無しさん :2020/11/27(金) 15:09:19.88 ID:8PW9KReU.net ソリューションエクスプローラーのヘッダーファイル、ソースファイルのとこを右クリックで新規選べばまっさらなファイル作れるし メニューのファイル→追加?(うろ覚え)でも作れる
187 :デフォルトの名無しさん :2020/12/06(日) 23:34:56.54 ID:TL07p8cG.net 手順書のページのURLありがとうございます。 Microsoft Visual Studio Community 2019 Version 16.8.2を使用中。 テキストで#include<stdio.h>から入力しましたが煮詰まりました。ソースはネットを検索してコピペなので、 コロンやセミコロンの間違いはないと思われます。 #include<stdio.h> int main( void ) { printf( "ようこそC(++)言語の世界へ\n" ); return 0; } タスクバー?にファイル(F)編集(E)表示(V)Git(G)プロジェクト(P)デバッグ(D)テスト(S)・・・があります。 手順書では[プロジェクトをビルドするには、 [ビルド] メニューの [ソリューションのビルド] を選択します。]とあります。 が、ビルドメニューがありません。 プルダウンのデバッグ(D)からデバッグ無しで開始したいですが デバッグ無しで開始が薄い文字になっており、クリックできません。 統合開発環境って皆さんが使用して使いやすいはずですよね。 何から順番にクリックしていくのかさっぱりわかりません。 手順通りにしようとして「ここをクリック」のところはたいていその「ここ」の項目が画面になくて ソースを書いてコンパイルすらできない、ありません。ありません状態。 同じバージョンでもメニューの項目が違っていたら次に何をするかお手上げです。 お助け下さい。
188 :蟻人間 :2020/12/06(日) 23:49:56.18 ID:x83Xfz/W.net >>187 ソリューションを作成した? ソリューションにソースを追加した?
189 :デフォルトの名無しさん :2020/12/07(月) 00:14:40.22 ID:MnyC2DM9.net アドバイスありがとうございます。 ソリューションエクスプローラー フォルダービューを右側に開いています そこにhello_.cppが表示されています。いま、開いているファイルです。 #includeからreturnまでペーストしています。 ソリューションエクスプローラーでhello_.cppを右クリックしますと[追加]があります。 [追加]->新しいファイル 新しい項目の追加(W) 新しいフォルダー この3つを表示します。ソリューションエクスプローラーにhello_.cppが表示されているだけでは不足でしょうか hello_.cppを右クリック新しいファイルを選ぶと名前を入力になりました aaaと入力するとツールボックスに新しくテキスト入力タブが表示 #includeからreturnまで貼り付けました デバッグ無しで開始の文字は薄いままです ビルドメニューはありません 編集や表示、Git、プロジェクトのメニューを色々クリックしています 変わりません… 何か、こんな不自由な統合開発環境を使うのは苦痛しか感じず、しかし 全世界のプログラマの人たちも使っているものですし、なんとか ビルドメニューを出したいです
190 :デフォルトの名無しさん :2020/12/07(月) 00:18:03.60 ID:MnyC2DM9.net あちこちクリックしていますと、画面の上に プロジェクト、ビルド、デバッグの文字が出てきました ビルド->ソリューションでコード分析を実行を選びます デバッグ->デバッグ無しで開始は薄い文字でクリックできません 何か手順が不足しているようです
191 :蟻人間 :2020/12/07(月) 00:18:08.82 ID:LcHpzYm6.net ファイルとフォルダの違い ソリューションの種類が違う だろうな
192 :デフォルトの名無しさん :2020/12/07(月) 00:59:54.04 ID:MnyC2DM9.net 不慣れでごめんなさい デバッグ無しで開始は薄い文字でクリックできず変わらず 本日はそろそろ寝ます 後は明日、使い方と用語を調べます
193 :蟻人間 :2020/12/07(月) 01:04:11.74 ID:LcHpzYm6.net 初心者は素直にチュートリアルの手順に従ってればいいんだよ。
194 :デフォルトの名無しさん :2020/12/09(水) 03:22:01.70 ID:WuZTb4kZ.net 濡れちゃうう!
195 :デフォルトの名無しさん :2020/12/12(土) 02:59:14.21 ID:a7AUwK+L.net なにからすればいいの 目標がない
196 :デフォルトの名無しさん :2020/12/12(土) 13:02:07.54 ID:A7m2fOl0.net 「何かしたい」というものが無いならば、しなくてどうぞ。 「何かしたい」というものが有る人は、自分で行動する。
197 :はちみつ餃子 :2020/12/12(土) 13:39:37.52 ID:UUApGKPR.net 質問サイトにある質問に (根拠になる一次資料 (主に仕様書の具体的な項目) と共に) 回答するのを繰り返せば 特定のプログラミング言語に詳しくなることは出来るよ。 それでプログラミングを出来るようになるかどうかはわからんけど。
198 :デフォルトの名無しさん :2020/12/12(土) 13:47:09.92 ID:k8hTa554.net 「人工知能搭載の人型アンドロイドが作りたい」 という目標を持つ者が 「printfで文字列を表示したい」 という目標を持つのはとてもつらい
199 :デフォルトの名無しさん :2020/12/12(土) 18:31:18.09 ID:KTyXxWQ0.net 今日は国会図書館に行ってきたわ。
200 :デフォルトの名無しさん :2020/12/12(土) 18:34:21.54 ID:KTyXxWQ0.net 国会図書館は国会議事堂内に分室があって資料を取り寄せて閲覧できるんですよ。 でも、ほとんど利用実績が無いらしいんですね。
201 :デフォルトの名無しさん :2020/12/12(土) 19:52:44.57 ID:KTyXxWQ0.net 国会図書館は若い女性と、男性は老人が多かったです。 土曜日だからかもしれません。 資料のコピーは長蛇の列が出来ていました。 あの列で感染するんでしょうね。 女性のメガネ率は8割超えてました。 おそらくドクター持ちでしょうね。
202 :デフォルトの名無しさん :2021/01/05(火) 14:54:55.04 ID:zOsm6XDhK 自由な働き方を求め10代〜20代の登録が拡大。フリーランス登録者約3.4倍に増加。https://prtimes.jp/main/html/rd/p/000000348.000010591.html フリーランス向け報酬即日払いサービス『先払い』申込件数5,000件突破https://prtimes.jp/main/html/rd/p/000000048.000047439.html ITフリーランスの独立支援サービス『テックビズ』&定額制全国住み放題『ADDress』提携開始https://prtimes.jp/main/html/rd/p/000000035.000047639.html リース、フリーランスのためのお部屋探しアプリ「smeta」の正式版をリリース、提携賃貸管理戸数が6万戸を突破https://prtimes.jp/main/html/rd/p/000000032.000042693.html 家族50万円・単身30万円を支給、新潟県が「テレワーク・フリーランス移住」で応援金https://www.bcnretail.com/market/detail/20201225_205952.html ワーケーション会社員増加中、定額制宿泊サービス「HafH」を実体験https://finance.yahoo.co.jp/news/detail/20201231-00257105-diamond-column 「フリーランススタート」の掲載案件数、累計16万件を突破https://codezine.jp/article/detail/13393 フリーランスエンジニア専門の案件一括検索サイト「フリーランススタート」、 掲載案件数1ヶ月で10,000件増加し、累計掲載案件数16万件突破!さらにリモートワークの掲載案件数5,000件突破!https://prtimes.jp/main/html/rd/p/000000012.000038976.html フリーランス向けの求人は「テレワーク可能」が主流に 2021年は労働者の地方への移住が進む?https://nlab.itmedia.co.jp/nl/articles/2012/25/news118.html
297 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200
本文 スレッドタイトル 投稿者