X



【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
垢版 |
2017/07/18(火) 07:07:27.20ID:vzMDiUgd
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。

【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)

前スレ
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://mevius.2ch.net/test/read.cgi/tech/1478440682/
0878デフォルトの名無しさん
垢版 |
2017/10/16(月) 21:01:51.62ID:JAGwlDmF
>>877
ほんとに?
0879はちみつ餃子 ◆8X2XSCHEME
垢版 |
2017/10/16(月) 21:19:32.17ID:8llzdgRf
>>870
ISO などでは 2008 年に 1 バイトは 8 ビットという定義を決めた。
http://diode.matrix.jp/LEGEND/BYTE.htm
1 バイトが 8 ビットではない (それなりに広く使われている) アーキテクチャが事実上消えたのは決め手のひとつだと思う。

C でこの定義を採用すると明記されているわけではないので、
C の言語仕様としては依然として処理系定義という扱いのはずだし、
何かの用途に特化したプロセッサでは変則的なものはいくらでもありうるんだけど、
自分で書くプログラムでそこまで想定することはまず無いわな。
0880デフォルトの名無しさん
垢版 |
2017/10/16(月) 22:10:25.19ID:7CHwAcHs
処理系を言わないならx86と勝手に解釈していい。charは8bitじゃない処理系もあるとかナンセンス。
0881デフォルトの名無しさん
垢版 |
2017/10/17(火) 00:03:46.71ID:gPfxTVwW
vector<string> a;
for(auto i=0; i<20; ++i) a.push_back(" ");
// vector<string> b;
// b.push_back(" ");
て、なんかおかしな所ある?デバッガで size がやたら大きな値になる…
下2行コメント外すと想定どおりになる…もう、わからん
0882はちみつ餃子 ◆8X2XSCHEME
垢版 |
2017/10/17(火) 01:11:42.94ID:xlsZVRp9
>>881
実際いくつになって、
自分はどういうのを想定してるのか書けよ。
俺らはお前が何を想定してるのか知らんがな
0884デフォルトの名無しさん
垢版 |
2017/10/17(火) 04:44:35.63ID:AOvKqYYR
PICはcharが6ビット。
0887デフォルトの名無しさん
垢版 |
2017/10/17(火) 09:15:45.07ID:EtZfCwzt
>>879
いや、組み込みの仕事してれば普通にあるから。
してなければ、普通に無いってのも間違いでは無いが、言い切るものでもない。
0889はちみつ餃子 ◆8X2XSCHEME
垢版 |
2017/10/17(火) 10:10:10.17ID:xlsZVRp9
>>887
それは「用途を特化したアーキテクチャ」ではなくて汎用的で広く使われているコンピュータなの?
組込み系って普通は何か用途を特化してるものと思うんだけど。
0890デフォルトの名無しさん
垢版 |
2017/10/17(火) 12:07:40.67ID:XkjDmgw/
VC で Release ビルドでデバッグトレースしてたりして
あれ、ソースレースできちゃうけど、あまりあてになんねーし
0891デフォルトの名無しさん
垢版 |
2017/10/17(火) 12:09:50.70ID:kRPJAKch
コンピューターの定義次第やな

株や証券取引に広く使われているFPGAはどういう扱いなの?
CUDAはどうなの?これらもC言語と称している言語で書くが?

この先は宗教戦争になるから止めれ
0895デフォルトの名無しさん
垢版 |
2017/10/17(火) 21:42:56.86ID:0HMqhgUO
>>889
汎用とか特化に食いついてるのではなくて、「事実上消えた」ってところと、「自分で書くプログラムでそこまで想定することはまず無いわな」の部分に食いついているんだけどね。
0896デフォルトの名無しさん
垢版 |
2017/10/17(火) 21:46:38.99ID:0HMqhgUO
組み込みの世界が特化という点は反論しないし、ぶっちゃけどうでもいい。
でも、特化してるからって、別に消えてないし、仕事で普通に気にしてるし。
0897はちみつ餃子 ◆8X2XSCHEME
垢版 |
2017/10/18(水) 02:21:26.88ID:8euWiZGY
>>895-896
「それなりに広く使われているアーキテクチャとしては」と限定して書いているのは、
そうでないアーキテクチャでは残っていることは承知しているという意味だよ。
自分ってのはまさに「私」のことなので実際気にする場面に遭遇したことがないし、
それをどうこう言われても俺に組込み系の仕事をして欲しいというのでもなけりゃ何の意味があるのかわからん。
0900デフォルトの名無しさん
垢版 |
2017/10/18(水) 05:22:14.83ID:Wqkl1Wvb
JavaやC#、その他の高級言語、スクリプト言語で済むならそこにはC/C++の出番はない。
組み込み、OS、ドライバ、ハード寄り専用言語と思っていい。
0903デフォルトの名無しさん
垢版 |
2017/10/18(水) 08:56:09.82ID:at3yxigr
>>897
特化してることと、広く使われてるって事は、互いに背反しないんだけど?
君の中では、特化=狭い、と言う定義なのなら、この話はこれでおしまいでいいよ。
0904デフォルトの名無しさん
垢版 |
2017/10/18(水) 09:00:16.16ID:at3yxigr
>>897
あともう一つ、君の今いる世界が、世間一般とは限らないから。
0905デフォルトの名無しさん
垢版 |
2017/10/18(水) 10:03:33.10ID:NAca40Iu
並行世界か。
0906はちみつ餃子 ◆8X2XSCHEME
垢版 |
2017/10/18(水) 11:38:55.90ID:8euWiZGY
>>902
「思う」とか書いてるの、感想以外の何物でもないじゃん。
書いてないことを勝手に読み取るなよ。
0907デフォルトの名無しさん
垢版 |
2017/10/18(水) 11:55:04.11ID:LfPioRS3
8bitでない処理系とかの話になるとすぐ荒れるよな
客観的に見ると、噛み付いてる組み込みの連中の方が支離滅裂だよ
脊髄反射する前に一連のレス読み直した方がいい
0908デフォルトの名無しさん
垢版 |
2017/10/18(水) 12:15:35.97ID:NAca40Iu
VSはよく出来てるからMSから取り上げて国連で管理するべき。
0909デフォルトの名無しさん
垢版 |
2017/10/18(水) 12:16:43.65ID:NAca40Iu
国連移管後のVSは戦略物資として利用者を追跡するべき。
0912デフォルトの名無しさん
垢版 |
2017/10/18(水) 15:39:35.53ID:NAca40Iu
病院に連れて行ったほうが良い。
0914デフォルトの名無しさん
垢版 |
2017/10/18(水) 21:03:18.48ID:lHCL+31V
本気でそう思うからお前らがまず受診してこいよ w
お前らの世間狭すぎるだろ
0915デフォルトの名無しさん
垢版 |
2017/10/18(水) 23:53:45.00ID:oy9jxwBz
>>879
>アーキテクチャが事実上消えた
組み込み系じゃない俺でもさすがに消えてないとは思うが、
まず基本的に1バイトの定義がはっきりして、さらにコンピュータの性能進化とともに
特殊な処理系が減っていくならそれ自体は良いことじゃねーの?
>>868辺りからの流れに対して無意味な罵倒してるのはお前らだろ
特殊な処理系を知ってるのがお前らのアイデンティティなの?ww

あと
>>895
>「自分で書くプログラムでそこまで想定することはまず無いわな」
俺もまず想定しないよ、リトルエンディアンですら気にしたことない
気にするのは必要になってからだ、まず必要にならないのに想定してコスト増やすのはただの給料泥棒
0916デフォルトの名無しさん
垢版 |
2017/10/18(水) 23:59:19.56ID:oy9jxwBz
間違えた、ビッグエンディアンだった
リトルエンディアンの環境でしか書いたことないし、俺の場合は多分今後も無いので。
0917デフォルトの名無しさん
垢版 |
2017/10/19(木) 00:31:08.38ID:4jS9VIw9
Cが使われるような用途ではバイナリレベルの話は必須のはずだが。IF仕様で必ず指定あるだろ。
0921デフォルトの名無しさん
垢版 |
2017/10/19(木) 12:45:12.45ID:hylRky7G
>>919
まあcharが8bitはまだわかるけどx86決め打ちとかあり得んよな
よほど井の中の蛙扱いされたのが悔しかったみたいだ w
0922デフォルトの名無しさん
垢版 |
2017/10/19(木) 13:08:04.36ID:Ka5Awqhg
俺は>>880じゃないし
他人のレス(>>919)を自分の煽りに利用するなクズが

ハードの制約や特殊な環境というのがCPUにしか無いと思ってる辺り、井の中の蛙はお前
手加減してやってるうちに黙るか謝れ
とっくに論破されてるだろ?
0924デフォルトの名無しさん
垢版 |
2017/10/19(木) 21:51:19.20ID:AKvCLhcx
> ハードの制約や特殊な環境というのがCPUにしか無いと思ってる
引っ込みつかなくなって話をそらそうと必死だな w
0926はちみつ餃子 ◆8X2XSCHEME
垢版 |
2017/10/21(土) 00:01:02.62ID:piER3a9b
多くの職をなるべく均等に育成する方針でいたんだけど、
まずはどれでもいいからレベル上げして高レベルの宝の地図をゲットしたら育成なんていくらでも出来るな。
完全に失敗だわ。
仕方がないのでウォルロ北東の高台ではぐれメタル相手にレベル上げしてる。
0931デフォルトの名無しさん
垢版 |
2017/10/27(金) 15:14:51.06ID:BaiBMwP3
typedef size_t size_type;
こういうコードを良く見るんですが、これは何のためにやってるんでしょうか?
0934デフォルトの名無しさん
垢版 |
2017/10/27(金) 16:29:53.23ID:8v9HsLU9
驚きの柔軟剤ふわふわファーファ。
0936デフォルトの名無しさん
垢版 |
2017/10/27(金) 21:06:52.03ID:/LUCvRWS
オブジェクトを横断して共有したい情報の保持
何個実体作ったっけ?ってカウントしたり
0937デフォルトの名無しさん
垢版 |
2017/10/27(金) 21:23:23.67ID:BaiBMwP3
型を抽象化とはsize_tをsize_typeでオーバーライドすると言う意味で
型の切り替えとはsize_tとsize_typeを使い分けるということでしょうか?
型の切り替えの意味が合っているとしたら、中身が同じものを使い分ける事なんてあるんですか?
0938デフォルトの名無しさん
垢版 |
2017/10/27(金) 21:44:14.01ID:M7vRAAca
例えば何かの都合でsize_typeをssize_tにした方がよいとなった場合にtypedefを一行変更するだけで済む
他の部分はsize_typeという型で抽象化されているから簡単に切り替えられるということ
0939デフォルトの名無しさん
垢版 |
2017/10/27(金) 23:53:57.84ID:BaiBMwP3
>>938 >>932
やろうとしてることはある程度理解できました。ありがとうございます。
でもsize_typeをssize_tにするようなことはしてないスクリプトにも、このコードは書かれています。
そういうケースに備えて念のために書いておいたほうがいいということなんでしょうか。
0941デフォルトの名無しさん
垢版 |
2017/10/28(土) 05:57:50.48ID:KtZXeElz
typedef unsigned int Uint;
typedef unsigned int MyResID;
typedef unsigned int MyID;

例えば、Uint だと意味が分からないから、
リソース番号なら、MyResID
自分のID なら、MyID
などと再定義して、用途を分けておくと、見た目にも分かりやすい

「c typedef」で検索!
0944デフォルトの名無しさん
垢版 |
2017/10/28(土) 12:16:56.59ID:5IbYoyZ3
>>941
それは見た目で用途が分かりやすいというだけでなく、ある用途の場合だけ型を変更し易いという利点が主じゃないかな?
例えばMyResIDは当初は整数で良かったけど後で文字列に変更したくなったとか。
0945デフォルトの名無しさん
垢版 |
2017/10/28(土) 12:33:49.13ID:MyIroYJQ
MyResIDは8桁の数字を取り扱うんだけど、
intが16bitの環境に移植することになった…なんて時に便利
0948デフォルトの名無しさん
垢版 |
2017/10/31(火) 18:04:33.78ID:vd1YUsZz
>>900
>組み込み、OS、ドライバ、ハード寄り専用言語と思っていい。
言語系自体(C#/Java) は C/C++ で書かれているんじゃない?C/C++ 以外で記述されたエディター、というのも思い当たらないね
0952デフォルトの名無しさん
垢版 |
2017/10/31(火) 20:51:58.22ID:3JCeBBQH
>>949
Electronに使われてるV8がC++だがな
0953デフォルトの名無しさん
垢版 |
2017/11/01(水) 07:12:46.61ID:UcxIkq8e
クラス定義でサンプル見るとprivate:が書いてあるのばかりだけど
クラスはデフォルトでpraivateだから書く必要ないよね
可読性のために書いてるの?
0955デフォルトの名無しさん
垢版 |
2017/11/01(水) 08:05:04.65ID:1pZzHGIc
>>953 俺は書く派。
public や protected と統一されて座りがいいと感じる。
流石に「デフォルトでprivate」を覚えられないわけではない。
0956デフォルトの名無しさん
垢版 |
2017/11/01(水) 09:32:55.92ID:hOs9b/I4
>>953
class aaa
{
public:
//メンバ関数−上の方が目立つ?
private:
//メンバ変数−下の方にこそっと?
}
みたいな書き方が一部で流行してるからってだけでは?
実際、流行してるのか否かも知らんが
0957デフォルトの名無しさん
垢版 |
2017/11/01(水) 19:35:21.85ID:nkaKR7E8
>>953
綴りも覚えられないようなボンクラは書かないで済むなら書きたくないって思うんだろうな w
0958デフォルトの名無しさん
垢版 |
2017/11/01(水) 20:04:14.14ID:qg2RuF/n
こういうクラスメソッドがあれば便利だな〜
一番上にpublicで追加したろ
ってなった時に巻き添えでpublicにしないように
0960デフォルトの名無しさん
垢版 |
2017/11/01(水) 20:59:34.54ID:M3kcqSwB
>>959
間違ってない
そのページで使ってる『ランダムアクセス』『検索』の意味(処理の内容)に対しては一覧表の計算量であってる
0961デフォルトの名無しさん
垢版 |
2017/11/01(水) 21:01:07.22ID:4wUVM0HB
画像処理についての質問です
下記コードのループ1のframeTestとループ2のframeTest2で出来上がる画像が違うのは何故なんでしょうか?
(frameTestは緑一色、frameTest2は緑赤青の3色)
使っているのはvisual studio2017です

コード http://codepad.org/IHZhOf8h
0962デフォルトの名無しさん
垢版 |
2017/11/01(水) 21:20:00.76ID:xoMVkOKP
TestIm[] が想定してる並びになってない
1回目のループ中に 実は書き壊してるw
なので 2回目のループの時は 参照だけしてるはずなのに同じにならない

インデックスの式 Testwidth*y + x*3 + 0〜2(色)
1行あたりのバイト数が Testwidth で見積もってる式になってるからね
0963デフォルトの名無しさん
垢版 |
2017/11/01(水) 21:36:50.34ID:xoMVkOKP
Testwidth * 3 * y + x * 3 + 0〜2
これで望みの形になると思うよ

W * H 次元の空間を 1次元で並べるなら W * y + x
W * H * C 次元の並びは (W * y + x) * C + color → W * C * y + C * x + color
こんな感じ
0965デフォルトの名無しさん
垢版 |
2017/11/01(水) 21:56:38.47ID:GUg4tmKS
>>960
すみません、ランダムアクセスと検索を逆に指してました。
前者がoperator []、後者がfindですよね。

unordered_setは検索がo(1)なのでunordered_mapも同じかと思ってました。
ハッシュテーブル系はo(1)になると思っていたのですが、そうでもないのでしょうか?
0966デフォルトの名無しさん
垢版 |
2017/11/01(水) 22:44:25.89ID:M3kcqSwB
>>965
> 前者がoperator []、後者がfindですよね。
これが違う

あのページでいうunordered_mapに対する『検索』は
(key, value)ペアのvalueが指定した値と等しい要素を探す処理(要するに逆引き)のこと
となるとkeyとは無関係な処理なため全要素を順次走査することになるからO(n)になる
0967デフォルトの名無しさん
垢版 |
2017/11/01(水) 23:27:07.64ID:kBuKLW51
>>965
O(1)になる検索のアルゴリズムなんてねえよ
0973デフォルトの名無しさん
垢版 |
2017/11/02(木) 11:24:52.00ID:+ai7GGRX
>>966
ありがとうございます。そういう意味でしたか。
unordered_setはkey自体がvalueなので検索もO(1)だという単純な話ですね。
0974デフォルトの名無しさん
垢版 |
2017/11/02(木) 13:25:09.29ID:fgcqUQ//
>>972
公式にドキュメントがあるなら一通りは目をとおしな
http://wdnet.jp/library/windows/wintab#2.3

> 2.3 Wintabの初期化
...
> 2.スケーリングの初期化について
>  以下のように、LOGCONTEXT の値を初期化する事でスケールの設定を行います。
...
> A lcInExtX,lcInExtY にタブレットの入力最大座標
0975sage
垢版 |
2017/11/02(木) 19:37:23.87ID:Vcb2n/8t
以下,かっこよくなりませんか?
while文の条件がダサすぎるので何とかしたい.
std::array は使わず,2次元の生配列でお願い.

以下,ソース.

#include <iostream>
#include <cstdlib>
#include <fstream>

int main(){
std::ifstream fin( "xxx.txt", std::ios::in );

double data[6][4];
int i = 0;
while( fin >> data[i][0] >> data[i][1] >> data[i][2] >> data[i][3] ){
for( int j=0; j<4; ++j )
std::cout << data[i][j] << " ";
std::cout << std::endl;
++i;
}

return EXIT_SUCCESS;
}
レス数が950を超えています。1000を超えると書き込みができなくなります。

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