【初心者歓迎】C/C++室 Ver.26【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/03/29(水) 11:59:26ただしその場合、質問者は必ず、環境を書きましょう。
※sageは禁止です。
【前スレ】
【初心者歓迎】C/C++室 Ver.25【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1140963340/l50
【アップローダー】(質問が長い時はココ使うと便利)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0153デフォルトの名無しさん
2006/04/03(月) 09:16:39ぶっちゃけどちらも{0}でいいんじゃ・・・
015449(ncursesで日本語表示)
2006/04/03(月) 10:40:110155デフォルトの名無しさん
2006/04/03(月) 14:00:53わからないことがありますので教えてください。
strcpy(stackinfo, phost->h_name) ; の
-> とゆう表記はなんでしょうか?
代入?変数?よくわかりません。よくプロの人が
使う技なんでしょうか?
ちなみに初心者の書籍には一切書かれて無かったので、
中級以上の方が使うものだと思われます。
わかる方、よろしくお願いします。
0156デフォルトの名無しさん
2006/04/03(月) 14:03:22アロー演算子でググレ
0157デフォルトの名無しさん
2006/04/03(月) 14:03:380158デフォルトの名無しさん
2006/04/03(月) 14:04:15ありがとうございます。早速しらべてみます。
0159デフォルトの名無しさん
2006/04/03(月) 14:05:11なんという書籍なのか非常に気になる。
ポインタを解説しないCの書籍なんてあるのだろうか。
0160デフォルトの名無しさん
2006/04/03(月) 14:26:110161質問
2006/04/03(月) 15:23:44C言語の質問ではないのですが適切なスレがどこなのかわからないのでここに書いてみました。
Q1.Visual Studio 2003でC++でダイアログプログラムを記述しているのですが
メインダイアログを表示するのにリソースビューからたどって何度かクリックしないといけないのですが、簡単に表示させることはできますか?
Q2.ダイアログでプログラム作成時に常にグリッド表示にしたいのですが、「グリッド」に設定して保存しても、サイドプロジェクトを開くと「ガイドの設定」が「ルーラーとガイド」に戻って
しまいます。ガイドの設定をグリッドに固定することは可能でしょうか?
よろしくお願いします。
0162デフォルトの名無しさん
2006/04/03(月) 15:51:44A2.しりません。やってみたけどできないね。
0163質問の母
2006/04/03(月) 16:13:360164デフォルトの名無しさん
2006/04/03(月) 16:22:10CUI環境でのC++プログラム(と言えない程の物)をちょろちょろ作ってるんですけど、
皆さんは初めてプログラミングを始めようと思ったときどんな事から始めましたか?どんな本を読みましたか?どんな学校でどんな事から学びましたか?
教えていただけるとうれしいす。
初心者歓迎ってこういう事じゃなかったりスレ違いだったりした場合誘導お願いします∧||∧
0165ヒッキー☆
2006/04/03(月) 16:56:17↑このHPの日記にて
「暇だよなネラー爆笑
見ててウケるしワラ〜
自分を相手への中傷でしか表現できなぃ(笑)
頑張ろうね
なんか能力低いっつうか人として低いなって思う(笑)」
↑ようするに
ニートだけならまだしもPCやってる全ての人間を馬鹿にしてるんですよ
あなたは許せますか??
0166デフォルトの名無しさん
2006/04/03(月) 17:02:330167デフォルトの名無しさん
2006/04/03(月) 17:17:11>ニートだけならまだしもPCやってる全ての人間を馬鹿にしてるんですよ
その内容からそういう判断をするお前が人を馬鹿にしているんだよ。
若しくは、お前自身が馬鹿。
0168デフォルトの名無しさん
2006/04/03(月) 18:43:46マ板向きの内容だと思うのでここらへんでどうぞ
スレッドを立てるまでもない質問雑談スレ23
http://pc8.2ch.net/test/read.cgi/prog/1139729337/l50
【ルールは】超初心者が質問するスレ【守れ】
http://pc8.2ch.net/test/read.cgi/prog/1093770642/l50
0170デフォルトの名無しさん
2006/04/04(火) 07:41:51#define y(arg2) x(arg2)を使って展開する
こんな感じでマクロの中で他のマクロを
多重に使えるんでしょうか?
そのとき評価順序はどうなるんでしょう?
0171デフォルトの名無しさん
2006/04/04(火) 08:29:17#define y(arg2) x(arg2)
#define z(arg3) Z z(arg3) Z
x(xxx)
y(yyy)
z(zzz)
↓展開結果 by gcc -E
XxxxX
XyyyX
Z z(zzz) Z
0172デフォルトの名無しさん
2006/04/04(火) 08:31:50#define z(arg3) Z##z(arg3)##Z
z(zzz)
↓ 展開結果 by gcc -E
test.c:2:1: pasting ")" and "Z" does not give a valid preprocessing token
Zz(zzz)Z
0173デフォルトの名無しさん
2006/04/04(火) 08:44:430174デフォルトの名無しさん
2006/04/04(火) 08:47:00として連接されずに、展開対象になっているのかと。
gcc の 2.9.x から 3.x で挙動が変わった?
0175デフォルトの名無しさん
2006/04/04(火) 08:49:18http://blog.tcp-ip.or.jp/ar/syuichi/index.php?mode=show&date=20050112
0176デフォルトの名無しさん
2006/04/04(火) 08:52:06鬱だしのう
0177デフォルトの名無しさん
2006/04/04(火) 09:08:400178デフォルトの名無しさん
2006/04/04(火) 10:58:140179デフォルトの名無しさん
2006/04/04(火) 11:29:130180デフォルトの名無しさん
2006/04/04(火) 12:01:29どう読みこめば?
あかさたなはまやら
というファイルから
かさた、まや
だけ読み込んでcharに
置き換えるにはどうすればいいのでしょう?
0181デフォルトの名無しさん
2006/04/04(火) 12:38:23>そのとき評価順序はどうなるんでしょう?
#define x(a) {a}
#define y(a) <x(a)>
とすると、y(foo)の展開は次のように進む。引数の展開の細かいところは省略した。
矢印は「着目しているトークン」を指す。
→y(foo)
/* マクロyの呼び出しを認識。引数の対応は a -> foo */
/* 引数fooを展開。結果はfoo */
/* yの呼び出しを定義本体で置き換える */
→<x(foo)>
/* <はマクロではないのでそのまま出力 */
<→x(foo)>
/* マクロxの呼び出しを認識。引数の対応は a -> foo */
/* 引数fooを展開。結果はfoo */
/* xの呼び出しを定義本体で置き換える */
<→{foo}>
/* {はマクロではないのでそのまま出力 */
<{→foo}>
/* 以下同様。これ以降マクロの呼び出しはなく、結果は<{foo}>。 */
0182デフォルトの名無しさん
2006/04/04(火) 12:44:00どういう条件で
かさた、まや
だけが抜き出されるのか?
をコンピュータに説明すればいい。
0183デフォルトの名無しさん
2006/04/04(火) 12:51:18char ch ='あ';だとコンパイルエラーだし
0184デフォルトの名無しさん
2006/04/04(火) 12:59:010185デフォルトの名無しさん
2006/04/04(火) 13:42:565冊C++の本あるのにstd::localeのこととか、どれにもほとんど載ってねー
買う本間違ったかな・・・、それとも足りないかな・・・
まあ、ぐぐればそれなりに出てくるみたいだけど
以上チラシの裏
0186デフォルトの名無しさん
2006/04/04(火) 13:52:00それが難しくて出来ないんです
単にfscanfを利用してもできませんし…
0187デフォルトの名無しさん
2006/04/04(火) 14:14:16ワイド文字を含むテキストファイルから、例えば任意のn番目にある文字を知りたい
みたいな感じ?
0188デフォルトの名無しさん
2006/04/04(火) 15:04:47お願いします。
金額を入力して、割引した額を表示させるプログラム
を作ったのですが
printf("一割引の場合\n%d円\n",(int)(a*0.9));
この行の(int)(a*0.9))の(int)がなぜ必要なのでしょう?
実際無くしてやってみたら全部計算結果が0になってしまった
のですが。
0189デフォルトの名無しさん
2006/04/04(火) 15:07:39int型は自動的にdouble型やfloat型などの浮動小数点型に”格上げ”されてしまうため、
(int)でint型にキャストして表示してる
0190デフォルトの名無しさん
2006/04/04(火) 15:12:15ということは、5とか6とか掛けるなら
このintはいらない、ってことですね。
アリガトウございました。
0191デフォルトの名無しさん
2006/04/04(火) 15:42:49、--‐冖'⌒ ̄ ̄`ー-、
/⌒` 三ミヽー-ヘ,_
__,{ ;;,, ミミ i ´Z,
ゝ ''〃//,,, ,,..`ミミ、_ノリ}j; f彡
_) 〃///, ,;彡'rffッ、ィ彡'ノ从iノ彡
>';;,, ノ丿川j !川|; :.`7ラ公 '>了 なにジョジョ? マルチバイト文字一文字が表せない?
_く彡川f゙ノ'ノノ ノ_ノノノイシノ| }.: '〈八ミ、、;.)
ヽ.:.:.:.:.:.;=、彡/‐-ニ''_ー<、{_,ノ -一ヾ`~;.;.;) ジョジョ それは「一文字」と考えるからだよ
く .:.:.:.:.:!ハ.Yイ ぇ'无テ,`ヽ}}}ィt于 `|ィ"~
):.:.:.:.:|.Y }: :! `二´/' ; |丶ニ ノノ 逆に考えるんだ
) :.: ト、リ: :!ヾ:、 丶 ; | ゙ イ:}
{ .:.: l {: : } ` ,.__(__,} /ノ 「2バイトだから文字列だ」と
ヽ ! `'゙! ,.,,.`三'゙、,_ /´
,/´{ ミ l /゙,:-…-〜、 ) | 考えるんだ
,r{ \ ミ \ `' '≡≡' " ノ
__ノ ヽ \ ヽ\ 彡 ,イ_
\ \ ヽ 丶. ノ!|ヽ`ヽ、
\ \ヽ `¨¨¨¨´/ |l ト、 `'ー-、__
\ `'ー-、 // /:.:.} `'ー、_
0192デフォルトの名無しさん
2006/04/04(火) 15:51:09UTF-32だったら4バイトだよ
0193デフォルトの名無しさん
2006/04/04(火) 19:01:40SJIS にしろ EUC にしろ UTF-8 にしろ、
どちらにしろ文字列だな。
0194デフォルトの名無しさん
2006/04/04(火) 21:07:08Shift-JIS環境などでは通る。
>>186
> それが難しくて出来ないんです
まず、条件をまとめろ。
話はそれからだ。
そもそも、人に説明できない事を、
コンピュータに命令出来ると思ってるのか?
抜き出したい各文字がどういう条件で抜き出されるのか、
もう一度よく整理するこったな。
0195デフォルトの名無しさん
2006/04/04(火) 21:34:19最近のC言語の本でも載ってないのけっこうある。
標準だよね?
0196デフォルトの名無しさん
2006/04/04(火) 21:37:28ttp://ja.wikipedia.org/wiki/C99
0197デフォルトの名無しさん
2006/04/04(火) 21:52:39stddef.hの・・・
0198デフォルトの名無しさん
2006/04/04(火) 21:58:080199デフォルトの名無しさん
2006/04/04(火) 22:17:10>int *ptr();とするとint型へのポインタを返すptr関数という意味になります。
これってどういう意味なんですか?
サンプルソースとか誰か書いてくれませんかね?
0200デフォルトの名無しさん
2006/04/04(火) 22:22:39int* ptr();
こう書いたらわかるか。
0201デフォルトの名無しさん
2006/04/04(火) 22:23:10int *ptr(); /* 宣言 */
int *ptr() { return NULL; } /* 定義 */
0202デフォルトの名無しさん
2006/04/04(火) 22:27:12{
static int forex = 10;
return & forex;//int へのポインタ
}
0203デフォルトの名無しさん
2006/04/04(火) 22:28:28ついでに言えば、
int * ptr() = NULL;
はエラー。
int (* ptr) () = NULL;
は合法。
0204デフォルトの名無しさん
2006/04/04(火) 22:36:15どうもありがてれう。
0205デフォルトの名無しさん
2006/04/04(火) 23:12:39val = MyStrSearch( nRnd, *encstring, *(encstring+1) );
decstring[i] = (unsigned char)val;
}
たぶん2重に条件つけてるんだろうけど
for($i=0;なんたら〜;$i++){
}
と展開してくれないかな?
0206デフォルトの名無しさん
2006/04/04(火) 23:27:00〜
}
≒
A
while(B){
〜
C
}
0207デフォルトの名無しさん
2006/04/04(火) 23:29:47それ、山田オルタの宇宙語デコーダだろ?
0208デフォルトの名無しさん
2006/04/05(水) 04:03:51これをCStringに読めるようにする方法、ありますか?
VC++.NET MFC SDIです。宜しくお願いします。
0209デフォルトの名無しさん
2006/04/05(水) 04:44:580210デフォルトの名無しさん
2006/04/05(水) 07:37:000211デフォルトの名無しさん
2006/04/05(水) 08:50:25while(1){
printf("hello\n");
}
というプログラムを実行すると
hello
hello
.....と続くじゃないですか、
一回一回のループでコマンドプロンプトに出力された結果を消去したいんですが・・
つまり hello が一回だけ出力されるようにしたいんですが・・
while使うなって思うかもしれませんがどうしてもwhileはまわしたいんです。
誰か、教えてくださいお願いします
0212デフォルトの名無しさん
2006/04/05(水) 08:52:55system("cls");
#else
system("clear");
#endif
0213デフォルトの名無しさん
2006/04/05(水) 08:59:00助かりました。ありがとうございます
0214デフォルトの名無しさん
2006/04/05(水) 09:24:071行だけしか出力しないなら\rって手もある
printf("hello\r")にすればカーソル位置がhに戻るから上書きされる
進捗度表示するのとかに使えるな
0215デフォルトの名無しさん
2006/04/05(水) 11:31:480216デフォルトの名無しさん
2006/04/05(水) 11:34:04> そういやマルチバイト文字1文字を表すときどうやんの?
> char ch ='あ';だとコンパイルエラーだし
>194 デフォルトの名無しさん 2006/04/04(火) 21:07:08
> >>183
> Shift-JIS環境などでは通る。
0217デフォルトの名無しさん
2006/04/05(水) 11:34:38どうしても下の箇所でエラーが出る
よくよく考えればサイズの分からないものを確保しようとして失敗してるってわかるんだけど、どうにかならないかな
ファイルから文字列を読み込み、rand()%numで文字列配列内の要素にランダムにアクセスしてそれを出力するプログラムです
ReadFile(char**& urllist, int& num)
{
/*・・・・・・・・・・・・・・・・・・*/
strlist = new char*[num];
/*・・・・・・・・・・・・・・・・・・*/
}
0218デフォルトの名無しさん
2006/04/05(水) 11:36:41なんだかいろいろ見つかった。
http://pc8.2ch.net/test/read.cgi/tech/1124256027/583
http://pc8.2ch.net/test/read.cgi/tech/1142302804/988
http://pc8.2ch.net/test/read.cgi/tech/1142302804/983
http://pc8.2ch.net/test/read.cgi/tech/1134128493/382
http://pc8.2ch.net/test/read.cgi/tech/1135077848/437-438
http://pc8.2ch.net/test/read.cgi/tech/1138893959/35
0219デフォルトの名無しさん
2006/04/05(水) 11:38:19・std::vectorを使う。
・関数I/Fを見直す。
・newを使うという発想の愚かさに気づく。
0220デフォルトの名無しさん
2006/04/05(水) 11:44:33オーケー
マロクってくる
0221デフォルトの名無しさん
2006/04/05(水) 11:51:32ー^)ъ GJ!
0222デフォルトの名無しさん
2006/04/05(水) 12:02:04コンパイルをDLしたのですが、MS-DOS窓というのがどこにあるのかまったくわかりません。
C言語の初心者サイトなどを一応見てみたのですが書いていなくて、くだらない質問だとは思いますが教えてください。
0223デフォルトの名無しさん
2006/04/05(水) 12:07:03コマンドプロンプト。
0224デフォルトの名無しさん
2006/04/05(水) 12:12:33printf("%d");で中身を確認した所-128と言う値が出力されました
0x70で1120 0x01で10が出力されたのですが、なんでですか?
単純に変数の型と%dの形式があってないからそのような出力がされただけで
実際に変数の中身は代入された値がしまわれているのでしょうか?
0225デフォルトの名無しさん
2006/04/05(水) 12:17:080226デフォルトの名無しさん
2006/04/05(水) 12:22:33御回答ありがとうございます。
じゃあunsigned charにすれば問題ないですね
0227デフォルトの名無しさん
2006/04/05(水) 12:32:14教えていただいてありがとうございます。
cmdでいいならなんでDOS窓なんて言うんでしょうね・・・。ずっと探してましたよ・・・。
0228デフォルトの名無しさん
2006/04/05(水) 12:34:56プログラムの前に、コンピュータの一般的な基礎知識から勉強しろよ。
0229デフォルトの名無しさん
2006/04/05(水) 12:47:200230デフォルトの名無しさん
2006/04/05(水) 13:41:54ここはPG初心者歓迎であってPC初心者は受け付けてないのだぜ
とっとと帰るんだぜ
0231デフォルトの名無しさん
2006/04/05(水) 13:48:13嫁が言ってました。
0232デフォルトの名無しさん
2006/04/05(水) 13:59:48for(int i=0;i<20;i++){
hoge(i);
}
return;
}
iの寿命がfunc関数内ではなく、for内だけにする設定って、VC++6.0ではどうやるんですか?
0233デフォルトの名無しさん
2006/04/05(水) 14:02:080234デフォルトの名無しさん
2006/04/05(水) 14:04:310235デフォルトの名無しさん
2006/04/05(水) 14:04:45#define for if(0); else for
0236デフォルトの名無しさん
2006/04/05(水) 14:11:400237デフォルトの名無しさん
2006/04/05(水) 14:12:09VC6がそもそもおかしかった。
0238デフォルトの名無しさん
2006/04/05(水) 14:13:32そういう風に明確に規定されるようになったんじゃないかな。
0239デフォルトの名無しさん
2006/04/05(水) 15:17:44ドラフト無視して作っただけじゃないかな
0240デフォルトの名無しさん
2006/04/05(水) 15:24:12大量にコンパイルエラーになるコードがあるから標準ではOFFってだけじゃなかったか。
0241デフォルトの名無しさん
2006/04/05(水) 15:29:29http://msdn2.microsoft.com/ja-JP/library/84wcsx8x.aspx
Visual C++ 6 および 7.1 では /Zc:forScope オフがデフォルト
Visual C++ 8 では オンがデフォルトのようです。
0242デフォルトの名無しさん
2006/04/05(水) 15:45:190243デフォルトの名無しさん
2006/04/05(水) 15:56:48だから、VC7でオプション作って、互換性のためにデフォルトでオフにしたんとちゃうん?
0244デフォルトの名無しさん
2006/04/05(水) 16:05:430245デフォルトの名無しさん
2006/04/05(水) 16:41:330246232
2006/04/05(水) 16:59:250247デフォルトの名無しさん
2006/04/05(水) 17:04:110248デフォルトの名無しさん
2006/04/05(水) 17:28:08/Za
ただし、Windows.hでエラーが出るようになるが(w
0249デフォルトの名無しさん
2006/04/05(水) 18:48:290250デフォルトの名無しさん
2006/04/05(水) 22:31:35肝心のコントローラからの入力をどうやって処理したらいいかわかりません。
ウインドウメッセージで WM_DEVICECHANGE というのがあったので検知できるかと思ったのですが
コントローラのボタンを押しても wParam に何も入りません。
USBとかからの情報を扱えるウインドウメッセージは他にありませんか?
0251デフォルトの名無しさん
2006/04/05(水) 22:54:57USBとかは関係ない。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_multimedia_input.asp
かDirectInputあたりを使え。
0252デフォルトの名無しさん
2006/04/06(木) 02:04:31派生クラスではprivate関数としてオーバライドできるって、
何かおかしくないですか?オーバライドする際、アクセス指定は
一致させる必要ないですよね?
そうすると基底クラスのポインタ経由で派生クラスのprivateな関数
呼び出せちまいますよね。継承自体がprivate継承なら基底のポインタに
派生のポインタ代入するとコンパイルエラーになるようですが。。。
(それともこれって標準規格では違うの?俺のコンパイラだけ?)
■ このスレッドは過去ログ倉庫に格納されています