- 1 名前:デフォルトの名無しさん [2011/09/15(木) 00:17:43.25 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ 01 pc11.2ch.net/test/read.cgi/tech/1167476845/ 02 pc11.2ch.net/test/read.cgi/tech/1178503366/ 03 pc11.2ch.net/test/read.cgi/tech/1187521676/ 04 pc11.2ch.net/test/read.cgi/tech/1221633708/ 05 pc11.2ch.net/test/read.cgi/tech/1230516307/ 06 pc11.2ch.net/test/read.cgi/tech/1231564903/ 07 pc11.2ch.net/test/read.cgi/tech/1232983248/ 08 pc12.2ch.net/test/read.cgi/tech/1235921779/ 09 pc12.2ch.net/test/read.cgi/tech/1240022781/ 10 pc12.2ch.net/test/read.cgi/tech/1242300936/ 11 pc12.2ch.net/test/read.cgi/tech/1245059383/ 12 pc12.2ch.net/test/read.cgi/tech/1248010352/ 13 pc12.2ch.net/test/read.cgi/tech/1260842197/ 14 pc12.2ch.net/test/read.cgi/tech/1269273471/ 15 pc12.2ch.net/test/read.cgi/tech/1273368706/ 16 hibari.2ch.net/test/read.cgi/tech/1279285647/ 17 hibari.2ch.net/test/read.cgi/tech/1285115590/ 18 hibari.2ch.net/test/read.cgi/tech/1291571263/ 19 hibari.2ch.net/test/read.cgi/tech/1308106024/
- 82 名前:デフォルトの名無しさん mailto:sage [2011/10/06(木) 09:00:52.21 ]
- やはりここはptr_funの出番d・・・
transform(vec.begin(), vec.end(), vec.begin(), bind2nd(ptr_fun<double, double, double>(pow), 3.0));
- 83 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 21:10:35.55 ]
- もっとクールな方法でパブリックメンバ変数を外から見たらconstに中から見たら非constにできる?
struct hoge { int const x; hoge(void) : x(0) { } hoge(int x) : x(x) { } hoge & operator = (hoge const & h) { const_cast<int &>(x) = h.x; return *this; } void inc(void) { const_cast<int &>(x) += 1; } void dec(void) { const_cast<int &>(x) -= 1; } };
- 84 名前:デフォルトの名無しさん mailto:sage [2011/10/08(土) 22:12:54.93 ]
- publicなメンバ変数という設計を捨てる
- 85 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 01:07:01.67 ]
- void君と名付けよう
- 86 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 09:26:21.88 ]
- ファイルを適当な変数の配列にファイルサイズ分一気に読み込みたいんですが、
どうすればできますか? 今はこんな風にして凌いでるけど、どう考えても馬鹿らしすぎる std::string buf; std::string DataStr; while(FileStream&&getline(FileStream,buf))DataStr+=buf; char *src=new char [DataStr.size()]; memcpy((void *)src,DataStr.c_str(),DataStr.size());
- 87 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 10:18:33.83 ]
- std::ifstream ifs("test.txt", std::ios::in|std::ios::binary);
ifs.seekg(0, std::ios::end ); size_t size = ifs.tellg(); ifs.seekg(0, std::ios::beg ); char *buff = new char[size+1]; ifs.read(buff, size); buff[size] = '\0'; // ... delete[] buff;
- 88 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 10:54:32.05 ]
- #include <exception>
#include <fstream> #include <iostream> #include <string> #include <vector> template <class A> void readAllAtOnce(char const * path, std::vector<char, A> & data) { std::fstream file; file.exceptions(std::ios::badbit | std::ios::eofbit | std::ios::failbit); file.open(path, std::ios::in | std::ios::binary); file.seekg(0, std::ios::end); std::ios::pos_type end(file.tellg()); file.seekg(0, std::ios::beg); std::ios::pos_type beg(file.tellg()); std::ios::off_type off(end - beg); if(data.max_size() < off) throw std::exception(); data.resize(off); file.read(&data[0], off); file.close(); } int main(void) { try { std::vector<char> buf; readAllAtOnce("test.txt", buf); std::string str(buf.begin(), buf.end()); std::cout << str << std::endl; } catch(...) { std::cout << "err" << std::endl; } return 0; }
- 89 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 23:12:40.33 ]
- 窓板の質問スレでたずねたんだけど、返答がないようなのでこっちでも聞かせてください。
C++でWinXPでネットワーク接続を表示したときに表示される「LANおよび高速インターネット」を 表示するexeを作成したいですが、ネットワーク名なんかはレジストリから取得できました。 しかし、切断したネットワーク名まで表示される状態で上記の内容とはずれてしまっています。 レジストリに保管されているネットワークから現在接続されているネットワークだけ表示したいんですけど、 何をフラグとしてしているのかがわかりません。 どなたかご教授お願いします。
- 90 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 01:12:36.92 ]
- blogs.msdn.com/b/jpwdkblog/archive/2009/09/29/9900575.aspx
devcon status =net でdisabled/runningの判別がつくけど他にいい方法があるかもしれん
- 91 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 01:19:16.35 ]
- >>87-88
ありがとう、seekgを使うのがポイントなのね
- 92 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 03:43:03.15 ]
- イテレータってインクリメントやデクリメントだけでなく、+1や-1でも前後の要素にアクセスできる?
- 93 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 09:19:56.59 ]
- 自分で試したほうが早かった。できた
- 94 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 09:38:55.18 ]
- 浮動小数点数をバイナリで保存するにはどうすれば?
- 95 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 10:44:11.90 ]
- fwrite
ofstream::write
- 96 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 11:18:44.56 ]
- >>90
ありがとう。 devconは知らなかった。試してみる。
- 97 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:31:47.94 ]
- ローベルのC++入門講座をお持ちの方にお聞きしたいのですが、
P308の演算子オーバーロードの流れがよくわかりません。 > delete[] m_array; > m_array = array; deleteしたにも関わらず直後にdeleteしたものを使っていて混乱しています。
- 98 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:35:20.40 ]
- ロベールの翻訳は分かりやすい
- 99 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:36:11.26 ]
- その2行だと。
deleteしたのは、m_arrayのポインタが指す領域。 m_arrayはまだ残っている。 そこに、arrayのエリアのポインタを再設定しただけ。
- 100 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:37:57.79 ]
- ×そこに、arrayのエリアのポインタを再設定しただけ。
○そこに、arrayの中にあるポインタを再設定しただけ。
- 101 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:40:21.83 ]
- m_array→[a][a][a][a][a][a]
array→[b][b][b][b][b][b][b][b][b][b] ↓ ↓delete [] m_array ↓ m_array→??? array→[b][b][b][b][b][b][b][b][b][b] ↓ ↓m_array=array ↓ m_array--↓ array→[b][b][b][b][b][b][b][b][b][b]
- 102 名前:デフォルトの名無しさん mailto:sage [2011/10/10(月) 23:52:41.43 ]
- >>99-101
よくわかりました。ありがとうございます!
- 103 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 05:52:14.38 ]
- あるクラスのポインタ型の代入演算を定義したいと思っています。
つまり、 Hoge *a,*b; a=new Hoge; b=new Hoge; a=b;<-この部分 この部分の代入演算子を定義するために以下のように書きましたが チェック用の文字列が出力されません。(コンパイルは通ります) class Hoge{ public: Hoge(){} Hoge* operator=(Hoge& *hoge){cout<<"Check!"<<endl;return this;} }; どなたか申し訳ないのですがご教示願えないでしょうか。
- 104 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 07:28:56.83 ]
- >>103
その代入演算子は、 Hoge a; Hoge b; ... a = &b; としたとき、&a を返す演算子だから呼ばれてない。
- 105 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 07:36:40.08 ]
- >>103
これをやろうとすると、ポインタ型のグローバルな代入演算子をオーバーロードすることになるけれど、 C++では、その操作は許されていない。つまり、できない。 どうしてもというなら、copy()メソッドのようなものを作るしかない。
- 106 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 10:46:38.24 ]
- template<typename T>struct ptrh{T*const operator=(T*p){return h=p;}ptrh(T*p):h(p){}T*h;};
template<typename T>ptrh<T> ptrh_cast(T*a){return ptrh<T>(a);} ptrh_cast<hoge>(a)=b;
- 107 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 10:53:41.09 ]
- それ挙動確認して無いだろ
参照つけないとダメだな
- 108 名前:デフォルトの名無しさん mailto:sage [2011/10/11(火) 13:51:34.26 ]
- STLのコンテナやイテレーターが満たさないといけない要件をわかりやすくまとめたサイトや書籍は有りますか?
- 109 名前:デフォルトの名無しさん [2011/10/11(火) 16:22:01.56 ]
- 久々に実行したら
Setting Default Parameters... Parsing Configfile encoder.cfgCannot open configuration file encoder.cfg. 続行するには何かキーを押してください . . . ってでて動きません。 環境変数とかはいじってないはずなんですけど・・・ 解決方法がわかる人がいれば教えてください!
- 110 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:16:57.92 ]
- struct CUSTOMVERTEX2
{ FLOAT x, y, z,h; DWORD color; float u,v; }; CUSTOMVERTEX2* vertices; vertices=new CUSTOMVERTEX2[kakuKosu*2+2]; verticesを静的に初期化したらうまくいったのですが、 newを使って初期化したら何も表示されなくなりました。 newの書き方が変なのでしょうか。
- 111 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:35:29.79 ]
- あなたの求める挙動による
- 112 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 01:55:27.49 ]
- >>111
CUSTOMVERTEX2* vertices; vertices=new CUSTOMVERTEX2[20]; と CUSTOMVERTEX2 vertices[20]; で挙動の違いがあるんですか? ちなみに VOID* pVertices; if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) ) return; memcpy( pVertices, vertices, sizeof(vertices) ); g_pVB->Unlock(); verticesの中身は上記のような感じでバッファーに渡しています。
- 113 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 02:06:05.32 ]
- そもそもそれじゃ静的な初期化にもなってないが、
上と下でsizeofが何を返してくるかprintfで確かめたら直ぐに原因は分かる
- 114 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 02:07:00.46 ]
- >>112
sizeofの結果が変わってくる sizeof(vertices[0])*20にすればおk
- 115 名前:デフォルトの名無しさん mailto:sage [2011/10/12(水) 10:28:00.33 ]
- >>113-114
ありがとうございます。 できました。
- 116 名前:デフォルトの名無しさん [2011/10/13(木) 00:09:58.48 ]
- 初歩的な質問なのですが、エラー処理のあたりがよくわかりません。
#include <stdio.h> #include <stdlib.h> int main(void) { char *str; int num, i; printf("表示するaの個数を入力\n"); scanf("%d", &num); str = (char *) malloc (sizeof (char) * (num +1)); if(!str){ ←【Q1.この!strの意味は何でしょう?】 printf("メモリが確保できませんでした。\n"); return 1; ←【Q2.return 0;ではないのは何故ですか?】 } for (i=0; i<num; i++){ *(str+i) = 'a'; } *(str+num) = '\0'; printf("%s\n", str); return 0; }
- 117 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 00:30:21.08 ]
- > if(!str){ ←【Q1.この!strの意味は何でしょう?】
メモリー確保ができなかった場合rtn=0になる。その確認 > return 1; ←【Q2.return 0;ではないのは何故ですか?】 プログラムが終了したとこのコードを1(エラー)として0(正常)特別している。
- 118 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 00:31:51.37 ]
- ×特別している。
○と区別している。
- 119 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 01:07:29.45 ]
- A1.malloc()は必要なメモリの確保に失敗するとNULLを返すのでそれをチェックしている
A2.普通main()は成功時に0、失敗時に非0を返す。そのためのマクロEXIT_SUCCESSと EXIT_FAILUREも定義されている
- 120 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 03:12:37.85 ]
- >>117>>118>>119
ありがとうございます。理解できました。 論理演算子とNULL値をよく理解していませんでした。
- 121 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 07:06:25.03 ]
- C++を勉強しようと思ってるんだけど
練習問題がついた良いサイトありませんか? www.geocities.jp/ky_webid/ProgrammingPlacePlus/c/index.html こんなサイトのC++版があれば理想的なんだけど
- 122 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 08:52:06.18 ]
- >>121
C++はCと違ってそのボリュームは生半可じゃないぞ 独習C++でも買え
- 123 名前:デフォルトの名無しさん [2011/10/13(木) 11:17:11.22 ]
- Cの生みの親が死んじゃった・・・・・・
- 124 名前:デフォルトの名無しさん [2011/10/13(木) 14:14:16.82 ]
- 独学ですがC言語をマスターした後は何を勉強すればいいですか
- 125 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 14:39:55.46 ]
- 何がしたいのかによる。
- 126 名前:デフォルトの名無しさん mailto:sage [2011/10/13(木) 14:56:23.02 ]
- >>124
基本情報を取りましょう
- 127 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 12:57:00.56 ]
-
C言語の課題なんだが 、五つの数字足したあとに平均だす方法がわからん。 教えてください
- 128 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:11:34.53 ]
- ans = ( a + b + c + d) / 5;
- 129 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:12:48.93 ]
- ans = ( a + b + c + d + e) / 5; // 1こ足りんかった
- 130 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 13:18:31.86 ]
- <<127
すまない、補足なんだがC++だ
- 131 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 15:16:10.61 ]
- 平均の出し方も分からない奴がプログラミングをやる時代か……
- 132 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 15:58:18.97 ]
- 平均の求め方をやるのは小6だ
あとはわかるな?
- 133 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:10:02.03 ]
- 最近の小学生はプログラミングなんかやってるのか
- 134 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:15:21.83 ]
- まあ小6っつったらいろいろ背伸びしたくなる時期なんだろうな
- 135 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:19:22.80 ]
- 後で平均する数を増やすかもしれないのか、小数点以下をどうするのか、そもそも5つの値をどのように与え、どのように出力したいのか
- 136 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 16:24:40.12 ]
- 小学生とか
俺がお年玉でVB4.0を買った頃じゃないか 結局ろくなもん作れなかったけど
- 137 名前:片山博文MZ [2011/10/14(金) 17:10:05.90 ]
- int *p = new int[0]; // OK or NG?
- 138 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 19:05:53.66 ]
- >>137
OK ついでに言うと自分でnewをオーバーロードするときもサイズ0に対応できるように書かなければならない
- 139 名前:デフォルトの名無しさん [2011/10/14(金) 21:12:05.51 ]
- >>130
俺と同じ悩み持っててワロタ #include <stdio.h> int main() { int a, b, c, d, e; int f=5; puts("一つ目の数を入力"); scanf("%d", &a); puts("二つ目の数を入力"); scanf("%d", &b); puts("三つ目の数を入力"); scanf("%d", &c); puts("四つ目の数を入力"); scanf("%d", &d); puts("五つ目の数を入力"); scanf("%d", &e); } ここまでは出来るんだが、ここから合計と平均をprintfで出力する方法がわからない。 たぶん同じ事言ってるんだと思う
- 140 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 21:16:55.22 ]
- printf(" 平均=%d",(a + b + c + d + e)/f); // 小数点以下切り捨ての場合
- 141 名前:デフォルトの名無しさん mailto:sage [2011/10/14(金) 21:35:33.01 ]
- ttp://codepad.org/JYRrwYAj
- 142 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 08:29:11.34 ]
- >>139
C++らしさをどうしても出したいなら、cin と cout 使えば?
- 143 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 09:48:34.05 ]
- >>142
その前にcstdioだろ
- 144 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 15:10:53.49 ]
- 0x年代でもscanfの人気は揺るぎなかった
- 145 名前:デフォルトの名無しさん mailto:sage [2011/10/15(土) 16:56:04.82 ]
- fgets(buf, sizeof(buf), stdin);
n = sscanf(buf, "%d %d", &a, &b);
- 146 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:22:43.73 ]
- VISUALC++やってんだけど四捨五入どうやんの?
- 147 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:44:14.95 ]
- 四捨五入した値の用途次第
- 148 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:48:50.24 ]
- >>146
お前の頭の中の四捨五入の手順を細かく分解してその一つ一つの段階をプログラムにするだけ 頭の中のもやもやした考えを分析・整理してプログラムで表現するのは 上手くプログラムを書くのに必須の能力だからそのつもりでやってみな
- 149 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 00:51:37.79 ]
- >>146
boost::math::round<T>(X)
- 150 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 01:00:25.46 ]
- >>146
#include <boost/math/special_functions.hpp>
- 151 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 13:49:05.02 ]
- >>146
0.5をたしてきりすてる
- 152 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 21:13:14.45 ]
- >>147
哀しいけどソレが現実なのよね
- 153 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 00:12:38.15 ]
- 質問です。
下のようなファイルをバイナリ形式で保存する場合、 ClsFile clsFile; write(clsFile, sizeof( ClsFile ) ); とすると、ClsPageはポインタしか保存されないですよね? ということは、 write(clsFile, sizeof( ClsFile ) ); for(ii = 0;ii < 5; ii++){ write(m_page[ii], sizeof( ClsPage) ); } と、わざわざ構造体を分けて保存しないといけないのでしょうか? Class ClsFile{ Class ClsPage{ char m_moji[200]; }; ClsPage* m_page[5]; }
- 154 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 02:05:15.85 ]
- >>153
当たり前 C++なら自分でoperator<<を作るといい
- 155 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 08:03:56.29 ]
- >>153
オーバーロードと再帰をうまく使えば簡単に保存できるよ
- 156 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 09:28:51.24 ]
- >>153
まとめて保存すると、場合によってはアライメントの罠にはまって復帰できなくなる。
- 157 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 10:41:55.33 ]
- >>153
boost.serialization使えばいいじゃん
- 158 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 10:44:41.95 ]
- boost使えばいいじゃん厨は低能
- 159 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 12:56:42.27 ]
- 車輪の再発明をしようとする奴は低脳
- 160 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 13:05:27.32 ]
- 車輪の再発明ができない奴は、底辺コーダー止まりだろ
- 161 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 13:26:56.08 ]
- >>159
boostでいいじゃん厨がアホであることを示す典型的なレスだな
- 162 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 14:04:55.95 ]
- >>159
プログラムの99%は車輪の再発明、おまえはプログラムできないなw
- 163 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 17:15:55.61 ]
- そもそも質問に答えずにboostを薦める時点で質問理解力なしで解雇が妥当
- 164 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 19:00:58.56 ]
- boost は利用できる局面では便利だが、背景を無視して何でもかんでもboost言う奴は
確かにごにょごにょごにょ…特に実務に携わる機会の少ない研究者やアマチュアに多い傾向があるように思える。
- 165 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 19:51:46.04 ]
- codepadに具体的なコード上げてみろよ
話はそれからだ
- 166 名前:153 mailto:sage [2011/10/19(水) 00:59:45.97 ]
- いろいろアドバイスありがとうございます。
しかし、私にはどれが最適なのかが解りません・・・ 将来的に下記のようにバージョンを変更したときにも互換性を持たせられるようにしたいと思っているのですが、 その場合、構造体毎ではなく、クラス内で1メンバ毎に読み書きする仕様にしたほうが良いのでしょうか。 Class ClsPage{ char m_moji[200]; }; を Class ClsPage{ char m_Title[10]; char m_moji[200]; };
- 167 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 07:37:42.94 ]
- クラス内にシリアライズ/デシリアライズするメソッドを作成して、先頭にバージョン情報を入れておく。
デシリアライズ時にはバージョン情報を見てメンバを初期化して下さい。
- 168 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 15:47:49.83 ]
- 0からC、C++を始るのに、
初心者でも分かり易く解説されているサイトがあれば教えて下さい。 もしなければ、お勧めの本を教えて下さい。 できれば少ない冊数で、安価な物でお願いします・・・。
- 169 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 16:01:41.32 ]
- 値段の問題なら、図書館で借りるか古本屋で買えば良い
- 170 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 16:07:07.00 ]
- 独習C
- 171 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 16:32:41.44 ]
- ロベールの翻訳が分かりやすい
- 172 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 16:39:59.81 ]
- >>168
やさしいC やさしいC++
- 173 名前:デフォルトの名無しさん [2011/10/24(月) 23:59:40.88 ]
- 参考書の質問があったので、一緒に相談させてください。
『やさしいC』の次に使う参考書で悩んでいます。 来年からPGとして働く予定があり、そのため今は独学で勉強中という状況です。 3ヶ月かけ、参考書付属の練習問題は解けるようになったのですが 応用がほとんどできない、というのが悩みです。 宿題スレにある、大学生や専門学校生がこなしていると思われるレベルのものも ほとんど自力では100%のものが作れません。(解答を見れば理解できます) 「C言語でこういうソフトが作りたい!」という欲求もあまりないので、 問題集形式のものや、何か1つのソフトを作るという形式のものが良い Amazonレビューなども見てみたのですが、なかなか決められません。 おすすめの参考書を紹介していただけませんか。 (今度大きな書店がある都心の方へ行く用事があるので、そのときに中身も自分で見てみようと思います)
- 174 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 04:21:06.51 ]
- >>173
来年からだったら、もうその手の本は読まない方が良い (自分も似た様な境遇で挫折した過去が。。。) ググりながらでも、linuxなりwinのコマンドプロンプトなりのコピーを作るとかした方が良い 買うのは精々c言語のリファレンスとか関数辞典 GUIは今は出来なくて良い 見た目より、中身を作れる能力身に付けなさい
- 175 名前:デフォルトの名無しさん mailto:sage [2011/10/25(火) 04:23:32.45 ]
- 追記
単純なechoコマンドとかyesコマンドから始めるといいかも
- 176 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 09:04:41.62 ]
- しろうとならまずはアドレス帳あたりだな
データはXMLで保存して構文解析の練習もしよう
- 177 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 19:59:53.41 ]
- C言語の上位互換がC++言語と聞いたのですが、
C++を学べばCもすらすら出来るようになるのでしょうか? それとも、先にCを学んでからC++を勉強し始めた方が良いのでしょうか?
- 178 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 20:32:04.72 ]
- >>177
Cは言語使用がシンプルだから、 C++やる前に、さらっとCやっておくのは個人的には良いことだと思う。
- 179 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 20:38:33.18 ]
- C言語から始めて構造化プログラミングの問題点を身を持って理解してから
C++でオブジェクト指向プログラミングのメリットを体験すべき
- 180 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 20:46:33.48 ]
- >>179
>C言語から始めて構造化プログラミングの問題点を身を持って理解してから 横レスだけど、問題点ってなんだろ?
- 181 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 04:21:10.87 ]
- >>177
CとC++は別の言語だから、Cで仕事をするならCを、C++で仕事をするならC++を学んで下さい。 移植のために互換性がありますが、同じ言語だと思ったら大間違いです。
- 182 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 09:00:31.10 ]
- >>177
C言語はやっといた方がいいと思う。 で、C++でのC言語にないoperator等の利便性がわかると思う。
|

|