[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/11 09:59 / Filesize : 221 KB / Number-of Response : 903
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part33



1 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:44:23 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。

301 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:00:44 ]
はい、Winキーを押した時の様になります。

302 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 17:08:08 ]
それはお前の作ったプログラムでしか起きない問題なのか?
要するにお前が作ったプログラムに原因があるのか、
それとも元々OSがそういう仕様なのかぐらいはっきりしろ。

303 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 17:48:41 ]
元々OSがそういう仕様なのだと思います。
大抵の古いWIN32アプリでフルスクリーン時は大抵そうなってしまってます。
最近はそれに対処しているプログラムがあって、
それをどうやってるのかなと質問させて頂きました。

304 名前:デフォルトの名無しさん [2009/04/21(火) 17:55:39 ]
Visual Studio 6.0を使ってC言語+MySQLのアプリを作りたいのですが、
[ツール]→[オプション]で
ライブラリパスにC:\Program Files\MySQL\MySQL Server 5.1\lib\opt
インクルードパスにC:\Program Files\MySQL\MySQL Server 5.1\include
を設定し、
#include "mysql.h"をしてコンパイルするとMySQLのヘッダファイルでエラーが出まくります。
プロジェクトの設定が悪いのでしょうか?


305 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 18:02:00 ]
どういうエラーよ

306 名前:304 [2009/04/21(火) 18:06:41 ]
>>305
すみません。
c:\program files\mysql\mysql server 5.1\include\mysql_com.h(243) : error C2061: 構文エラー : 識別子 'SOCKET' がシンタックスエラーを起こしました。
c:\program files\mysql\mysql server 5.1\include\mysql_com.h(280) : error C2059: 構文エラー : '}'
c:\program files\mysql\mysql server 5.1\include\mysql_com.h(394) : error C2143: 構文エラー : ')' が '*' の前に必要です。
等です。
ttp://www13.plala.or.jp/kmaeda/winc/sqlset.htm
↑ここを参考にしました。

307 名前:304 [2009/04/21(火) 18:23:26 ]
すいません!自己解決しました。
#include <winsock.h>をしたらエラーが出なくなりました。
ここでwinsockが出てくるとは…。

308 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 18:49:05 ]
ああ、そういえばmysql.h見てて書こうと思ってて他の作業入ってて書きそびれたわ
mysql.h をinclude するまえにwindows.hをincludeしては、と書こうとしてた。

309 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 03:23:27 ]
Visual Studio C++ 2008で

#include <boost/random.hpp>
を使いたいんですけどこれはブーストをダウンロードした後どうすればいいのですか?



310 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 03:31:34 ]
>>309
今ダウンロードしたやつは忘れて、こっちのインストーラ版をダウンロードする。
www.boostpro.com/download

最も、VC++ 2008ならSP1当てれば#include <random>で
名前空間std::tr1にほぼ同じものが存在する。

311 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 03:39:06 ]
>>310
ご親切にありがとうございます。
なるほどー
SP1当ててないのでダウンロードしてみます。
インストール後はもう#include <boost/random.hpp>を使える状態になるのですか?

今環境がないため試せないんです;

312 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 10:44:38 ]
インクルードディレクトリの設定やったことないのか?
インストーラーがやってくれるならそのままでいいし、ダメなら自分で設定すればいいだけ

313 名前:デフォルトの名無しさん [2009/04/25(土) 00:03:11 ]
すみません。一般的に画像を保存する際、.bmp形式より.jpg形式の方が画像サイズが小さくなります。
今度作成しようとおもっているのは、Alt+Prt Scキーにより、クリップボードにコピーされた
アクティブな画面キャプチャを.jpg形式のファイルで保存しようとおもうんですが、
私のアルゴリズム?では、bmp形式のサイズで保存されてしまうのが予想されます。

私のアルゴリズムは以下です。
1.クリップボードの画像データをビットマップオブジェクトにコピーし、ファイルを保存する。
2.ファイル名の拡張子を.jpgに変換する。
以上です。

以前、Alt+Prt Scキーで取得した画面キャプチャ画像をアクセサリのペイントに貼り付けてjpegファイルに変換しても
画像サイズが変わらなかったので、上に書いたアルゴリズムでは同様のことになってしまうと思います。

jpegファイルの軽さで最初からファイルを保存するようにするにはどうしたらいいでしょうか?

画像関係のソフト制作、VC++は不慣れなものですので、すみませんが教えてください。よろしくお願いします。


314 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 00:11:29 ]
>>313
GDI+

315 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 00:19:46 ]
Express以外を使っているなら、ATL::CImageもおすすめ。

316 名前:413 mailto:sage [2009/04/25(土) 00:52:22 ]
>>314さん、>>315さん。

どうもありがとうございます。教えていただいた、
キーワードでググってやってみようと思います。ちなみに
MFCですので。。

コンビニいって、立ち読みしてたので、お礼が遅くなりました。すみません。

317 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 07:30:44 ]
とりあえずファイルの拡張子変えただけじゃjpgにはならんよ…

318 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 08:20:10 ]
>>317
俺も最初の頃は
xxx.jpg.bmp
なんてファイルがあったな

319 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 12:30:50 ]
いい例えが思いつかなくて放置してたんだけど
昼飯食ってたらとたんに思いついた

アナログテレビにペンで 「デジタル」 って書くだけじゃ地デジは映らないよ!



320 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 10:19:59 ]
ペイントブラシは拡張子変えるだけでファイルフォーマットも変えるからなあw

321 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 10:21:03 ]
ペイントブラシじゃなくてペイントか

322 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 13:35:30 ]
いきなりですが、質問させてください。

VC++2008 ExpressEditionで、windowsアプリケーションを作成しようとしています。
CreateWindow関数の引数が多く、横に書いていくと見にくいので、途中で改行をしました。
すると、それ以後、コンマを入力するとエラー音(プンッというような音)が鳴ります。

これはどういった問題が起きているのでしょうか。
分かる方、どなたか教えていただけるとありがたいです。

323 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 02:18:15 ]
すみません。物凄く素人な質問で恐縮なのですが。
ボタンを沢山配置したときに、リソース上で整列させたいのですが、
元々ダイアログに表示されている、ボタン位置の調整が出来る青い枠は
増やせないのでしょうか……?

リソース上で座標だけ見てボタンの微調整をするのはかなり苦痛です。
宜しくお願いします……!

324 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 02:36:30 ]
どのリソースエディタかしらないけどコントロールの整列ボタンとかないの?
rcをテキストエディタで開いてみると
DEFPUSHBUTTON "OK", IDOK, 129, 7, 50, 14, BS_DEFPUSHBUTTON
PUSHBUTTON "キャンセル", IDCANCEL, 129, 24, 50, 14, BS_PUSHBUTTON
こんな感じになってるから手入力でやってもたいした労力じゃないかもしれないよ

325 名前:323 mailto:sage [2009/04/27(月) 02:46:51 ]
>324さま
使用しているのはVisualStudio2008のリソースエディタです。
複数ボタンを選択した後に右クリックして、左揃え上揃えがあるのを確認しました。
早とちりしてすみません(汗)
微調整は324さまの仰られた通り、テキストエディタで編集する事にします。
ありがとうございました。

326 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 03:01:17 ]
>>325
騙されたと思って、ダイアログエディタのガイドをクリックしてみろ。

327 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 20:26:44 ]
先日からVC++2008を使い始めましたが、基本的な操作方法が分かりません。
ライブラリを追加するのはどこからやればいいのでしょうか?
2005ではプロジェクト→設定…とやっていたのですが。
プログラム自体初心者なのですが回答お願いします。

328 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 20:55:09 ]
プロジェクト→設定…とやればいい

329 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 20:56:30 ]
プロジェクト→プロパティだった



330 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 21:29:50 ]
>>327
>プログラム自体初心者なのですが回答お願いします。
こういうの要らないだろ。
どうしてこういうの付けてくるヤツって耐えないんだろう。

…でもまあスレタイ的には今回は例外的に問題無いのか。

331 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 21:42:09 ]
>>327
それくらい2005とろくに変わっていないだろ。

332 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 21:47:05 ]
図解つきのマニュアルで1ステップずつ解説みないと使えないレベルなんじゃないか?

333 名前:323 mailto:sage [2009/04/28(火) 01:45:05 ]
>>326さま
位置調整用の青点線増えました。助かりました。ありがとう。

334 名前:327 mailto:sage [2009/04/28(火) 10:48:06 ]
プロジェクト→プロパティと開いたのですが、その後の項目で何を選べばいいのか分かりません。
2005ではリンクからライブラリの一覧が見れましたが、2008でリンカを選んでもそれらしい項目がありません。
他の項目も見ましたが、どこから追加すればいいのか分かりませんでした。
詳しく教えていただけないでしょうか。

335 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 10:53:59 ]
詳しくも何もヘルプに書いてあるだろ。探せなきゃ「リンカ入力としての .lib ファイル」でググれ

336 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 11:02:00 ]
>2005ではリンクからライブラリの一覧

これ、何のこと言ってる?
もしかしてC++/CLIか?

337 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 17:44:18 ]
VC++用のXML SDKってどこからダウンロードすればいいでしょうか?


338 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 18:12:08 ]
>>337
www.microsoft.com/downloads/details.aspx?FamilyID=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=ja

339 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 18:18:04 ]
>>338
さんくっす



340 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 23:01:53 ]
>>337
一応、VC付属のSDK・MSDNライブラリにもMSXML関連のものは入っていたはず。
望みのバージョンのものかどうかはともかく。

341 名前:デフォルトの名無しさん [2009/05/01(金) 15:15:49 ]
MFCやWin32APIでつかうGDI+について、書かれてる本ってないですか?割とくわしめに書いてある本。。

洋書でもいいです。近くの大本屋4件くらいまわってもなかったもんで・・
もしあれば、Amazonで買おうと思います。

342 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 15:50:48 ]
またお前か

343 名前:デフォルトの名無しさん [2009/05/01(金) 21:04:33 ]
すみません。IEの現在表示してるアドレスを取得する事って可能ですか?

vcだけじゃ無理で、IEのSDKとかつかうんですかね・・

344 名前:343 [2009/05/01(金) 21:10:14 ]
事故解決しました。ググッたら色々でてきました。うへぇ〜。

345 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 21:14:16 ]
この辺見ればできると思う
www.nitoyon.com/vc/tips/ie_component.htm


346 名前:344 mailto:sage [2009/05/01(金) 21:18:50 ]
>>345
どうもありがとうございます><;そこは詳しく載ってますね><;

私がググって見つけたページよりも実践的なサンプルが載っています。

連休中にタスクバーに常駐するお気に入り管理ツールを作ろうと思いまして・・

ブラウザのお気に入り機能って使いにくいですよね><;

347 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 06:20:13 ]
StretchDIBitsとStretchBltの違いってなんですか?
メモリ上がなんとかとなってるんですが意味がわかりません

348 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 08:43:10 ]
>>347
StretchBlt: コピー元がHDC
StretchDIBits: コピー元がBITMAPINFO/void*

349 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 17:48:53 ]
main()関数のソースファイルが、同じソリューションかつプロジェクト内の他の
ソースファイルにリンクできてないようで、ビルドするとリンクエラーが出ます。
error LNK 2001:外部シンボル 〜〜〜〜 は未解決です。
fatal error LINK1120: 外部参照4が未解決です。
のメッセージが出ます。
正しくリンクできるように設定するにはどうするんでしょうか。
Visual Studio .NET 2003 Professional
作成したプロジェクトは Visual C++ プロジェクトの「コンソールアプリケーション(.NET)」です。




350 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 18:33:04 ]
インクルードしてないとかいう落ちだろ

351 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 18:45:13 ]
CLRならC++のみだし、、、Cリンケージの問題でもなさそうか?
参照設定してないとかいう落ちとか

352 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 19:14:17 ]
原因わかった。ファイルは実はリンクできてた。
vectorコンテナを使ってる箇所を直す必要がある。
前に単一のソースに書いてBorland C++ Compilerで正常にコンパイル成功
していたプログラムを拡張しようとしたが、他のファイルで定義したクラスの
変数宣言は問題無いが、
std::vector<class fileman> fman_databox1;
で定義して
fsize1 = fman_databox1[n1].getfsize();
のように、vectorコンテナに添え字演算子で要素を取り出したものから、
メンバー関数を使おうとする箇所があるとエラーが出るということがわかった。


353 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 19:19:11 ]
fatal error

実はリンクできてた

直す必要がある

分裂症ですか?

354 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 19:44:27 ]
一度ポインターにアドレスを代入してからメンバー関数を呼ぶように変更しよう
としたけど、そうやってもエラーになった。
IDEはちゃんとリスト選択が出てくるのに。
inlineを取ればリンクできた。
そんなことがあるのか、何でインライン関数にすればエラーになるんだ。

355 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 20:02:26 ]
インライン関数の展開って、コンパイル時に行われるからじゃないのか?

356 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:31:41 ]
テンプレートクラスで静的メンバ変数を使おうとすると、
>LNK2019: 未解決の外部シンボル
のエラーが出るのですが、どういった風に解決するのが一番でしょうか。

357 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:36:02 ]
テンプレートなのに何で静的なんだよ

358 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:43:27 ]
クラスごとにインスタンス数を数えたいのですが、
CountingObject : BasicCounting< CountingObject >と継承して、
BasicCountingのコンストラクタ、デストラクタでBasicCounting::countの値を増減しようと考えています。

テンプレートクラスで静的メンバ変数というのは、おかしいのですか?

359 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 08:48:51 ]
そんなくだらない話はC++スレでやれ



360 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 11:42:04 ]
>>356
クラステンプレートでないクラスの場合と同じで、変数の定義が必要。
class Foo
{
static int Hoge;
};
int Foo::Hoge;

tempate<typename T>
class Bar
{
static int Hoge;
};
template<typename T>
int Bar<T>::Hoge;
なお、クラステンプレートの静的変数は実体化させる必要があるので、
クラステンプレートのメンバ関数などと同様、通常はヘッダに定義を書く。

361 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:56:35 ]
コンパイル時にエラーがあるとVSでエラー箇所教えてくれるしエラーメッセージも出るからアサートって書く必要ないですよね


362 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 12:59:30 ]
構文エラー等ならコンパイル時にエラーになるが、0 division 等はエラーにならない。
よってアサートは必要。

363 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:11:44 ]
コンパイルエラーが出るうちはデバッグは楽だ。
実行時エラーになるととたんに対処が面倒になる。

364 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:34:07 ]
コンパイルエラーとアサートと同次元で語るやつが理解できない。

365 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 13:43:28 ]
>>364
まあまあ、ココは初心者スレだからいいじゃないか。

366 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 19:16:07 ]
実行時エラーと言いたかったんじゃないかなあ

367 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 20:03:49 ]
それは違くね?

368 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 08:46:18 ]
そうか?
アサートとコンパイルエラーが同レベルで出てくるなんて
初心者だってありえないだろ

369 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 08:55:35 ]
>>368
「ありえない」か?確率0%か?
いや、初心者ならそのくらいありえるのではないか?
およそ、初心者に「ありえない」ことは「ありえない」んでは?



370 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 10:04:21 ]
アサートという言葉を知ってるのにか?
当人に聞いてみなけりゃ分からないけど、
ありえないと言えるくらい見当違いなことだよ

371 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 10:09:22 ]
たぶん釣りじゃないのかw

372 名前:デフォルトの名無しさん [2009/05/05(火) 20:20:07 ]
MFCでなんか面白いもの作りたいんだけど、思いつかない。

サンプルが載ってるページってありますか?自力で作るのもいいんだけど・・お代が無いし。

373 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 21:02:58 ]
じゃ、タスクマネージャでも作ってみろ

374 名前:デフォルトの名無しさん [2009/05/05(火) 22:54:51 ]
>>373
タスクバーに入れる方法がわからないから、却下でござる。

375 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 23:07:59 ]
C言語始めようかと思って先ほどマイクロソフトのVisual C++ Express Editionってのをダウンロードしました
試しに参考書に載ってる簡単な足し算を表示するプログラムを書き写してみたんですが、
どうやってその書いたプログラムが動くのかが分かりません・・・

376 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 23:23:29 ]
F6でコンパイル F5で実行、だが・・・多分出てすぐ消ええる。
VCの入門本買って読むべし

377 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 23:38:49 ]
コンパイルで調べたら↓ヒットしました
msdn.microsoft.com/ja-jp/library/bb384838.aspx
手順の通りにやってみましたがやっぱりすぐ消えますね
分かるように勉強してきます ありがとうございました

378 名前:375 mailto:sage [2009/05/05(火) 23:55:05 ]
[新しいプロジェクト]のとこから色々弄ったら実行出来ました!
二桁の数字が表示されただけでしたが色々作れそうで楽しいっすね
スレ汚し失礼しました

379 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:28:51 ]
以下の2行をmainの最後に入れれば、実行後終了前にリーターンキー入力を待つ

printf("リターン入力で終了\n");
getchar();




380 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 00:38:50 ]
>>377
プログラムはあなたの思ったようには動かなくても
プログラムはあなたの書いたようには動く

という格言がある。
これから先何度も何度も味わい続ける事になるだろうが、
これを忘れないようにね。

んでオススメは、Windows環境限定で良ければ
#include <conio.h>
でgetch();を使うのが良いと思うよ。いかなるキーでも何か入力すれば終了するようになる。

#include <conio.h>
int main()
{
//処理
getch();
return 0;
}

381 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 12:09:16 ]
>>377
main()の最後の } にブレイクポイントを置けばいいよ。

382 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 12:17:10 ]
Ctrl+F5でいいよ

383 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 16:14:48 ]
VSとかでプログラムを作らないとデバッグって出来ないのですか
コマンドラインでそれ用のオプションつけてコンパイルしてあれこれして
デバッガー使うことは出来ますか?

384 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 16:28:01 ]
デバッグ自体はコンパイル方法関係ないよ
Cじゃなくてもできるし

385 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 16:28:12 ]
↑追加で実行ファイル開いたら問題なく出来ました
ごめんなさい

386 名前:デフォルトの名無しさん [2009/05/07(木) 00:03:37 ]
文字リテラルと文字列リテラルが分かれていますが、
どう言ったメリットデメリットがあるんでしょうか?
一文字の文字列を""で囲んでも何の問題もないような気がしますが
メモリの使用量が少ないんでしょうか

387 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:13:28 ]
C言語からやり直せw

388 名前:デフォルトの名無しさん [2009/05/07(木) 00:20:01 ]
すいません、今日C++始めたばっかりなんです
VBは型ぐらいなら分かるんですがどうしてもふに落ちないもので

389 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:32:58 ]
自分もC始めたばっかりなんだけど
char string[] = "ABCDE";
char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' };
文字列は文字の配列だよって理解でいいの?



390 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:56:44 ]
>文字列は文字の配列
読んで字の如し

391 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 02:41:38 ]
>>388
VBやったことあるなら、AscとChr$は知っているだろ。
めちゃくちゃ乱暴に言うと文字リテラル'A'は、Asc("A")と同じ。
Ascの戻り値とChr$の引数、VBではLongとかで扱っていただろうが、
Cではcharという独立した型が与えられていると思えばいい。

392 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:22:06 ]
n文字型があれば1文字型は不要ではという質問だと思うが、
文字の比較や判定の基本はバイト単位だな
32bitや64bit単位でできないこともないけど

393 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:38:31 ]
ああunicodeもあるから
文字単位で比較か

394 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:54:01 ]
>>386
文字と文字列の理解が怪しいな。
そもそもポインタとか分かってる?
いきなりC++にいくのは自殺級に難しいと思うからC言語から学んだ方が良いと思うよ。

395 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:57:40 ]
>>389
> 文字列は文字の配列だよって理解でいいの?
いいんじゃない。文字列は文字型変数の配列ね。
あと実際に文字列は扱えないからその先頭アドレスで扱うことになるってことを理解してくれ。
例えば
"ABCDE"=="ABCDE"
がtrueになるかどうかは処理系依存。
左の"ABCDE"と右の"ABCDE"が別に確保されていればアドレスが異なるから
これはfalseだが、コンパイル時にコンパイラが気付いてメモリ節約のために
同一文字列をマージすればtrueとなる。
> char string[] = "ABCDE";
> char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' };
これは全く同じになりますよ。


396 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:27:08 ]
で、結局メリットデメリット誰も言えないわけで

397 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:36:05 ]
>>396
は?頭おかしいの?

398 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 13:44:03 ]
データ型が違うという事実があるだけで、メリットもデメリットもない
メリットは使うときがくれば分かるとしか言いようがないな
使わない人にとっては面倒なだけと言えばデメリットにもなるだろうが、それは何にしてもそうだろう

399 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:10:36 ]
これだからVB厨はコンピュータのこと何もわかってないと
言われるんだよ
Cやったあとはマイコンもやれよ
で電子回路やってFPGAもやれ
そこでやっとプログラマといえる



400 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 14:34:58 ]
まぁ、いいんじゃないの一つずつ覚えていけば
VBは直感でも何となくできるし、プログラマへの足がかりぐらいにはなってると思うよ
偉そうだったらぶっ飛ばしたなくるけどw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef