【初心者歓迎】C/C++室 Ver.19【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/06/26(日) 22:45:25ただしその場合、質問者は必ず、環境を書きましょう。
※sageは禁止です。
【前スレ】
http://pc8.2ch.net/test/read.cgi/tech/1117984322/
【アップローダー】(質問が長い時はココ使うと便利)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0232デフォルトの名無しさん
2005/06/30(木) 15:26:07キャストできるけど何が起きても責任は取れない
0233デフォルトの名無しさん
2005/06/30(木) 15:26:58もちろん
typedef pair <unsigned int, unsigned int> Value_Container;
とかも
0234デフォルトの名無しさん
2005/06/30(木) 15:28:440235デフォルトの名無しさん
2005/06/30(木) 15:29:35キャスト以外に方法ないんですかね?
32bitの領域にメモリ確保して移すとか
0236デフォルトの名無しさん
2005/06/30(木) 15:55:54キャストは方法に入らない
ダウンサンクで検索汁
0237デフォルトの名無しさん
2005/06/30(木) 17:13:33コンパイラがstdio.hファイルをオープン出来ないなですが、何故なんでしょうか?
0238デフォルトの名無しさん
2005/06/30(木) 17:16:25コンパイラが正しくインストール/セットアップされていない
0239デフォルトの名無しさん
2005/06/30(木) 17:22:26自分に落ち度があったかもしれません。
もう一度やり直してみます。ありがとうございます。
0240デフォルトの名無しさん
2005/06/30(木) 17:38:53環境変数のチェック汁
0241デフォルトの名無しさん
2005/06/30(木) 18:08:55コンパイラは作動してるんだろうから、環境変数の問題じゃなさそうじゃね?
予想だがBCCの.cfgにパスを書き込んでいないくさい希ガス。
>>237はまずコンパイラが何なのかを書き込みましょう。
でないと答えようがないです。
0242デフォルトの名無しさん
2005/06/30(木) 19:00:04コンパイルできました。
別の本みて、cfgファイル作ってみたら、上手く動作しました。
何で上手くいったのかはよく分かりませんが、何にせよ助言ありがとうございました。
0243デフォルトの名無しさん
2005/06/30(木) 19:06:5564bitであることを明示するにはどうすればいいんですかね?.
(?)hoge
0244デフォルトの名無しさん
2005/06/30(木) 19:20:2664bitポインタの環境ならば*で64bitになるんじゃないのか?
0245デフォルトの名無しさん
2005/06/30(木) 19:26:50どなたか教えてください
mingwのインストールは出来ました
ディレクトリ名はMingw-jpにしておきました
そうしろとあったので
0246245
2005/06/30(木) 19:27:230247デフォルトの名無しさん
2005/06/30(木) 19:39:29亀レスだが、cygwin gcc 3.3.3 です。
0248デフォルトの名無しさん
2005/06/30(木) 19:44:10環境変数
PATH に Mingwのbin CPLUS_INCLUDE_PATH に includeが必要だっけ。
0249デフォルトの名無しさん
2005/06/30(木) 19:49:11設定とは関係なしに明示したいのですが...
ちなみにVS.net2003です
0250デフォルトの名無しさん
2005/06/30(木) 19:49:250251デフォルトの名無しさん
2005/06/30(木) 19:51:58#include <stdio.h>
#define pi 3.141592
double rad(double a)
main(){
int ans,rad,x;
printf("角度を入力してください");
scanf("%lf", &x);
ans=double rad(double a)
printf("%f\n",ans);
}
double rad(double a){
int x;
a=x*(pi/180);
}
こう書いたんですがうまくきません。
0252デフォルトの名無しさん
2005/06/30(木) 19:59:330253デフォルトの名無しさん
2005/06/30(木) 20:01:31intとdoubleがぐちゃぐちゃだし
関数の呼び出し方を理解していないようだな
ans=double rad(double a)
ってなんだ
ans = rad(a);
でよい
0254デフォルトの名無しさん
2005/06/30(木) 20:02:22幼稚園児にギリシャ語を教えるようなもんだな。
0255デフォルトの名無しさん
2005/06/30(木) 20:04:55int main()
{std::cout<<"うんこ"<<std::endl; return 0;}
ここまで覚えた
0256デフォルトの名無しさん
2005/06/30(木) 20:11:19#include <stdio.h>
#include <math.h>
#define pi 3.141592
double rad(double a)
main(){
double ans,rad,x;
printf("角度を入力してください");
scanf("%lf", &x);
ans=rad(double a);
printf("%f\n",ans);
}
double rad(double a){
double x;
a=x*(pi/180);
}
こうしましたが、結果がすべて0になってしまいます
0257デフォルトの名無しさん
2005/06/30(木) 20:17:57だから
ans=rad(double a);
は何なんだよ。
xに読んだんなら
ans = rad(x);
でいいだろが
0258デフォルトの名無しさん
2005/06/30(木) 20:19:11そこ直してもできません・・・
0259デフォルトの名無しさん
2005/06/30(木) 20:24:52にしろ。
それと、関数の呼び方や実引数、仮引数についてもっかい勉強しなおせ。
0260デフォルトの名無しさん
2005/06/30(木) 20:31:46最初から書いてもらえませんか?
0261デフォルトの名無しさん
2005/06/30(木) 20:37:480262デフォルトの名無しさん
2005/06/30(木) 21:03:35質問してやってんだからさっさと答えろ
0263デフォルトの名無しさん
2005/06/30(木) 21:04:360264デフォルトの名無しさん
2005/06/30(木) 21:31:170265デフォルトの名無しさん
2005/06/30(木) 21:56:51最初からトリップ付けないからそうなる
人生の助言だけしとく
0266デフォルトの名無しさん
2005/06/30(木) 21:58:04| 丿ノソ ̄ハ ) )
( 彳 / \|  ̄ ̄ ̄/ ─┼─ ──┐|| ─┼─ ./
彡」 ・ ・| |/ .| .| ゝ /
(6 ヽ つ / _ノ. / ___| ヽ_ /⌒ヽ_ノ
ミ / /⌒⌒ヽ
| \  ̄ ノ
| /
/ ̄| ̄ヽ ├─ ヽ ┼─‐ ‐┼‐ . / ̄| ̄ヽ
| / | __.|  ̄ヽ / __| ヽ . ‐┼‐ | / |
ヽノ ノ (_ノ\ _ノ (__ノヽ ヽ__ノ ヽノ ノ
_ _ ___ _
,! /_| |__ | | ! /____,、
______|________ |三三| ー十ー十ー / __ __| .| □ | / __ __l´
. | ー―――‐ ヽ、 ノ _________ ..く_/___| |___ ..| □ |く_/\ヽ| |
. 人 | ̄| ̄| , ヽ ノ | | |___ ___| | □ | ヽ |
ノ ヽ | ̄| ̄| ノ ヽ. | ロ. | / ヽ .|__ .__| / /
ノ ヽ、  ̄| ̄ ノ ヽ .. | ヽ| / /\ \ / ヽ / / ヽ\
 ̄| ̄ ..く_/ \ `フく_/\`フ く/ \`フ
 ̄ ̄ ̄ ̄
0267デフォルトの名無しさん
2005/06/30(木) 22:14:52不勉強にも程がある。
#include <stdio.h>
#include <math.h>
double rad(double a);
int main(){
double ans,a;
printf("角度を入力してください");
scanf("%lf", &a);
ans=rad(a);
printf("%f\n",ans);
return 0;
}
double rad(double a){
return a*(M_PI/180);
}
0268デフォルトの名無しさん
2005/06/30(木) 22:42:54#include <conio.h>
int main (void){
char test[1];
printf ("入力してください。");
printf ("\n");
scanf ("%c",&test);
if ( test == "key" ){
printf("正です。\n");
}else{
printf("不です\n");
}
getch();
}
keyと入力しても正にならないのは何故か教えてください。
0269デフォルトの名無しさん
2005/06/30(木) 22:46:32基礎からやり直し
#include <stdio.h>
#include <string.h>
int main (void) {
char test[256];
printf("入力してください。\n");
scanf("%s", test);
if (!strcmp(test, "key"))
printf("正です\n");
else
printf("不です\n");
return 0;
}
0270デフォルトの名無しさん
2005/06/30(木) 22:46:44scanf ("%c",&test); で取れてるのは文字
つーかデバッグライトしろって
printfでtestの中身表示させれば気がつくことじゃないか
0271デフォルトの名無しさん
2005/06/30(木) 23:08:06マジ、有難うございます。
C始めたばかりでして、ご迷惑をおかけしました。
デバッグライトなど少しずつ覚えていきたいと思います。
0272デフォルトの名無しさん
2005/06/30(木) 23:19:55-- 以下 テンプレ ------------------------
■ ここの人のお勧め書籍
独学C / 初めてのC / 猫でもシリーズ
■ 過去ログ
19以前は以下のdatを有難くDLしる。(ver19スレ >>205氏提供乙)
ttp://www.uploda.org/file/uporg137053.zip.html
■ここの過去質疑応答
過去ログQ&Aまとめ中 ◆tOP1/BWZ7g 氏が製作されているみたい。
(公開されたらURLを書く)
------ 以上、テンプレ ------------------------------------
0273デフォルトの名無しさん
2005/06/30(木) 23:45:07■入門者向けC++お勧め書籍(C未経験者可)
標準講座C++
決定版 はじめてのC++
0274デフォルトの名無しさん
2005/07/01(金) 00:17:010275デフォルトの名無しさん
2005/07/01(金) 00:17:540276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
2005/07/01(金) 00:30:58あと、標準ライブラリ、オブジェクト指向の解説はかなり薄口のような気がする。
0278デフォルトの名無しさん
2005/07/01(金) 00:39:44$ g++ --version
g++ (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ g++ -ansi -pedantic -Wall -W -fsyntax-only 194.cpp
194.cpp:10: error: ISO C++ forbids declaration of `main' with no type
194.cpp: In function `int main()':
194.cpp:11: error: ISO C++ forbids initialization in array new
0279デフォルトの名無しさん
2005/07/01(金) 00:46:50int main(){std::cout<<"Hello!"<<std::endl;return 0;}
をmingwでコンパイルしようとすると大量のエラーを吐いてexeが生成されません。
コマンドプロンプト使ってます
サイトにあったサンプルコード
#include<stdio.h>
int main(void){
printf("Hello GCC World on Windows!!\n");
}
はnewlineナントカというエラーがありましたが、exeが作られ、ちゃんと動きました。
0280デフォルトの名無しさん
2005/07/01(金) 00:54:12エラーメッセージを晒せ
0281デフォルトの名無しさん
2005/07/01(金) 00:59:38それと、エラーが長くて上の方が見られなくなってしまいます
0282デフォルトの名無しさん
2005/07/01(金) 01:02:47dir >dir.txt
0283デフォルトの名無しさん
2005/07/01(金) 01:03:59Windows のコマンドプロンプトなら、
タイトルバーを右クリックして「プロパティ」を表示。
[オプション] > [編集オプション] > [簡易編集モード] にチェックを入れる。
[レイアウト] > [画面バッファのサイズ] > [高さ] を思い切り(4096ぐらい)大きくする。
これでエラーは消えない(スクロールさせれば残ってる)し、
マウスで(ちょっと怪しいけど)テキスト選択ができる。
選択後のコピーは Enter なので注意。
0284デフォルトの名無しさん
2005/07/01(金) 01:08:26NT系のcmd.exeなら
t.exe > out.txt 2>&1
のような感じで。
command.comではそういう技はつかえんのでフリーのツールを探せ
0285デフォルトの名無しさん
2005/07/01(金) 01:18:45ttp://sylphys.ddo.jp/upld2nd/pc/img-box/img20050701011715.jpg
0286デフォルトの名無しさん
2005/07/01(金) 01:32:04gcc でコンパイルしてるのか?
g++ にしてみれば?
0287デフォルトの名無しさん
2005/07/01(金) 01:35:11出来ました!
ありがとうございます!
何故>>279の上のはg++で下のはgccになるんでしょうか?
0288デフォルトの名無しさん
2005/07/01(金) 01:43:52あ〜コンソールアプリから早く先に進みたいよ〜。
つか技術評論社からでているC言超入門とはじめてのC++を読んでるけど、これでいいのかどうか。
というか俺はC言語で何をやろうとしていたんだっけ?
0289デフォルトの名無しさん
2005/07/01(金) 01:44:28つ チラシの裏
0290デフォルトの名無しさん
2005/07/01(金) 01:44:59gcc は C のプログラムということになるので、
C で必要になるライブラリは勝手にリンクしてくれる。
C++ では言語標準の機能を使うために
C では必要の無いライブラリを追加でリンクさせる必要がある。
g++ を実行すれば、その時点で C++ プログラムだということが
GCC に伝わるので、そこらへんを勝手にリンクしてくれる。
gcc でも、自分で -lstdc++ として C++ のライブラリをリンクさせれば
おそらく同じ結果が得られる。
0291デフォルトの名無しさん
2005/07/01(金) 02:00:44なるほど。
分かり易く説明していただきありがとうございました!
0292デフォルトの名無しさん
2005/07/01(金) 04:46:03newlineなんちゃらは、最終行の末尾の改行がナインジャマイカ。
0293デフォルトの名無しさん
2005/07/01(金) 07:34:120294デフォルトの名無しさん
2005/07/01(金) 07:44:49ついでに言えば、コンパイラ(とそのオプション)によってはバグるんだよ。
0295デフォルトの名無しさん
2005/07/01(金) 07:59:50STLとかテンプレートの事が一切書かれてない
0296デフォルトの名無しさん
2005/07/01(金) 08:14:210297デフォルトの名無しさん
2005/07/01(金) 09:02:19ttp://www.kuzbass.ru/docs/isocpp/lex.html#lex.phases
2.1/1 の 2. より
" If a source file that is not empty does not end in a new-line character, or ends in a new-line character immediately preceded by a backslash character, the behavior is undefined."
0298デフォルトの名無しさん
2005/07/01(金) 09:04:090299デフォルトの名無しさん
2005/07/01(金) 09:19:44ttp://www9.plala.or.jp/sgwr-t/c/S/smpl06-2.html
ここのサンプルを使ってみたときの話です。
0300デフォルトの名無しさん
2005/07/01(金) 09:42:24何 が 消 え る ん で す か
0301デフォルトの名無しさん
2005/07/01(金) 09:48:20どうせWindowsのコンソールと思われ。
>>298
先にコンソール立ち上げてそっちから実行するかプログラムの最後にsystem("pause");でも入れとけ。
0302デフォルトの名無しさん
2005/07/01(金) 10:10:36ありがとうございましたー。
消えると言うのはDos窓のことでした。
0303デフォルトの名無しさん
2005/07/01(金) 10:19:17キミ、荒っぽいけどやさしいね。
0304デフォルトの名無しさん
2005/07/01(金) 10:42:08LSI-C86。
なかなかシュールなバグでね、ニモニックが一個落ちるだけだから運悪く実行できてしまうともうね。
0305デフォルトの名無しさん
2005/07/01(金) 12:01:59SubFunc(int **pData)
[
int data[][64]=pData;
}
main(){
int data[32][64];
SubFunc(data);
}
出鱈目ですが、こんな感じにSubFunc内で次元配列として扱える様に
渡す&受けるにはどう記述したら宜しいのでしょうか。
0306デフォルトの名無しさん
2005/07/01(金) 12:11:07コンパイラはgccを使用しています。
0307デフォルトの名無しさん
2005/07/01(金) 12:22:28SubFunc(int (*pData)[64]);
0308デフォルトの名無しさん
2005/07/01(金) 12:38:43有り難うございます。 引き数の時点で配列数入れるんですか・・・
ちなみに、 int data[][64]=pData;
の様な、別のポインタにコピーする事も出来るのでしょうか?
0309デフォルトの名無しさん
2005/07/01(金) 13:25:49C/C++では、多次元配列は、最初の次元以外の次元はすべて指定しなければならない。
C++なら、vector<vector<int> > >& でも使った方がいいんでわ?
別のポインタにコピーするには、
int (*data)[64] = pData;
ってすればできるでしょ。
0310デフォルトの名無しさん
2005/07/01(金) 13:59:31失礼しました・・・ 引数は (int data[][64])で通ったので、代入も同様に
出来るのかと思ったら、代入はint (*data)[64]でないと駄目なんですね・・・
この二つの違いが分からない orz
C++には諸々制限付いてる某なのでおとなしくCで書いてます。
0311デフォルトの名無しさん
2005/07/01(金) 14:03:45int data[][64]→int (data[])[64]→int (*data)[64] と内部で変換されているから。
dataは定数なので、これには代入できない。ちゃんとポインタ変数である事を示す
ために、*data と書かなければならない。カッコは優先順位変更のため。
int a[] = {1, 2, 3}, b[] = {4, 5, 6};
a = b;
とやったらエラーが出るっしょ?それと同じと考えてくれたまへ。
0312デフォルトの名無しさん
2005/07/01(金) 14:05:17と思った。コンパイルして試してみてないけど。
0313デフォルトの名無しさん
2005/07/01(金) 14:13:35また、他におすすめなコンパイラはありますか?
環境はNEC MobileGear (PC/AT用MS-DOS6.2, ハーフVGA, HDDの代わりにコンパクトフラッシュ使用)です。
0314デフォルトの名無しさん
2005/07/01(金) 15:10:28スモールモデルでいいのか?そうであればLSI-C86試食版。
でなければBorland-C++の方がいい。
0315デフォルトの名無しさん
2005/07/01(金) 16:35:54Visual C++のクラスの追加でOCXを読み込むとプロパティが消えてしまいます。
0316デフォルトの名無しさん
2005/07/01(金) 17:08:25それはもうだめかもわからんね。
0317デフォルトの名無しさん
2005/07/01(金) 20:14:09Digital MarsのDosExtenderもいいぞ。
0318デフォルトの名無しさん
2005/07/01(金) 20:52:50最近C/C++のコンパイルにmakeを使い始め、サフィック
スルールを学んでいるところです。
某解説webページに従って
.c.o:
cc -c $<
と記述することでMakefileがかなり楽に書けるようにな
りました。
しかし、ひとつのディレクトリにソースもオブジェクト
もゴチャ混ぜになるのが好きでないため、下記の様なデ
ィレクトリ構成でコンパイルしたいと考えています。
MakeDir\
+-- SrcDir\
+-- ObjDir\
+-- Makefile
上記のようなディレクトリ構成の場合、サフィックスル
ールを使って楽をするにはどのように書けばよいのでし
ょうか?
0319デフォルトの名無しさん
2005/07/01(金) 20:58:43cc -c -o$@ $<
とかかな
0320デフォルトの名無しさん
2005/07/01(金) 21:40:08タイプミスと思われるところを訂正して
{SrcDir}.c{ObjDir}.o:
cc -c -o$@ $<
これでうまくいきました。どうもありがとう。
0321デフォルトの名無しさん
2005/07/01(金) 22:12:44幾ら調べても本当にわけが分かりません、コンパイラーというのが有れば出来るものなのでしょうか?ご指導をよろしくお願いいたします。。
0322デフォルトの名無しさん
2005/07/01(金) 22:15:48そうだなコンパイラがいるな
むろんC++用のやつだ
その前にテキストエディタがいるが、まあ最悪viでもメモ帳でもSimpleTextでも
OS付属のやつでよい
0323デフォルトの名無しさん
2005/07/01(金) 22:16:32コンパイラがあれば出来る。
Google で フリー C/C++コンパイラ
で検索すれ。
0324デフォルトの名無しさん
2005/07/01(金) 22:16:37藻前には基礎知識が必要がと思う。
0325デフォルトの名無しさん
2005/07/01(金) 22:16:430326デフォルトの名無しさん
2005/07/01(金) 22:17:01Microsoft Visual C++ Toolkit 2003 質問箱
http://pc8.2ch.net/test/read.cgi/tech/1109618655/6-12
0327デフォルトの名無しさん
2005/07/01(金) 22:19:410328デフォルトの名無しさん
2005/07/01(金) 22:21:14つ チラシの裏
0329デフォルトの名無しさん
2005/07/01(金) 22:23:40それはWindows APIのことだろうか
色々な型とかあってわけわかんねーよ
なんだよLPCSTRって
とかそういうのは、ヘッダよめ
なんでもgrepする癖をつけろ
typedefとか#defineとかそういうのだ
よく使われるtypedefはそんなに多くないし、ある程度は決まりきった
命名規則に従ってるから、そのうち慣れるだろ
あとはMSDNと友達になるこったな
英文ぐらい、泣き言言わずに読め
0330デフォルトの名無しさん
2005/07/01(金) 22:45:03マジ感謝!
取り合えずMSDNナンパしてきます。
0331デフォルトの名無しさん
2005/07/01(金) 22:55:34なるほど!ありがとうございます!
ということは、何か買う必要はないという事でいいですか?
くどいようですが確認の為ご理解ください、申し訳ない
■ このスレッドは過去ログ倉庫に格納されています