トップページ⇒tech
1001コメント299KB

C言語なら俺に聞け(入門篇) Part 19

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/09/21(金) 11:43:13
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 18
http://pc11.2ch.net/test/read.cgi/tech/1187213990/

教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 96代目
http://pc11.2ch.net/test/read.cgi/tech/1190331997/
0153デフォルトの名無しさん2007/09/23(日) 22:54:33
おかしな読み方されるとこっちが恥ずかしくなる
0154デフォルトの名無しさん2007/09/23(日) 22:57:25
>>152
グローバル変数とか
0155デフォルトの名無しさん2007/09/23(日) 23:08:19
頭の中では
enum イーナム
char チャー
int イント
warning ワーニング
人と話すときは列挙型とか文字型とか整数型とか警告って言う
0156デフォルトの名無しさん2007/09/23(日) 23:13:09
stdio スタディオ!

スタンダードアイオーでいいんだよな…?
0157デフォルトの名無しさん2007/09/23(日) 23:15:54
うん
0158デフォルトの名無しさん2007/09/23(日) 23:20:29
double ダウブル
float フロアット
atoi アトイ
0159デフォルトの名無しさん2007/09/23(日) 23:28:25
http://www.wdic.org/w/TECH/enum
http://www.wdic.org/w/TECH/char
http://www.wdic.org/w/TECH/int
http://www.wdic.org/w/TECH/double
http://www.wdic.org/w/TECH/float
0160デフォルトの名無しさん2007/09/23(日) 23:43:26
enumはイーナムもしくはエニュームもしくはイニュームと読みます。

enumerateの略で数え挙げる・列挙するという意味ですが、Cのenumは「列挙する」です。
いくつかの定数を列挙したものという意味です。

イーナムは間違いと言う人がいますがこれこそ間違いです。
0161デフォルトの名無しさん2007/09/24(月) 00:07:53
おれはlatexの指示文はすげー適当な読み方してるけどね。
やっぱローマ字つづりで覚えたほうが覚えるスピードははやいよ。
イテミズ、エヌュメレイト、バーバティムとか。
0162デフォルトの名無しさん2007/09/24(月) 00:11:27
読み方ネタはここへ
http://pc11.2ch.net/test/read.cgi/prog/1177251487/
0163デフォルトの名無しさん2007/09/24(月) 00:34:34
charはチャーで正しいのにキャラ以外は間違いって言う人居るよね
0164デフォルトの名無しさん2007/09/24(月) 00:35:45
俺はチャー型って言ってる
0165デフォルトの名無しさん2007/09/24(月) 00:45:04
"include<stdio.h>
#define N 10

int main(){
int bx;
calc(bx);
calc2();
}

void calc(int box){
int i;
for(i=0;i<N;i++){
box+=i;
}
}

void calc2(void){
printf("%d\n",(boxの中身));
}

このboxの中身の値をcalc2でprintfで表示するには
どこでグローバル変数使えばいいの?
calc2では引数使わずに。
0166デフォルトの名無しさん2007/09/24(月) 00:47:55
#defineの下あたり
0167デフォルトの名無しさん2007/09/24(月) 00:49:22
関数の外あたり
0168デフォルトの名無しさん2007/09/24(月) 00:52:15
関数の外で定義して
どこでboxの中身を代入するの?
0169デフォルトの名無しさん2007/09/24(月) 00:54:54
プロトタイプの宣言は?
0170デフォルトの名無しさん2007/09/24(月) 01:02:23
void calc(int box)は何も手を加えないって条件なのか?
0171デフォルトの名無しさん2007/09/24(月) 01:03:12
>>165
それだとcalcでの計算結果は捨てていてboxはcalc2からは使えない
calcは関数を抜ける前にグローバル変数に代入するか
値を返すか引数をポインタで渡すかするよう書き換えなければならない
0172デフォルトの名無しさん2007/09/24(月) 01:04:35
そうです。
そうしないとたくさん引数にしないといけない。
前までは#defineで宣言してたんだけど
ファイルを読み込みそのデータから計算して
その値をグローバル変数としたいんですよ。
このプログラムは適当にかいたんです。
0173デフォルトの名無しさん2007/09/24(月) 01:06:42
>>172はどのレスに対するレス?
0174デフォルトの名無しさん2007/09/24(月) 01:07:03
int calc(int box){
int i;
for(i=0;i<N;i++){
box+=i;
}
return box;
}
0175デフォルトの名無しさん2007/09/24(月) 01:11:46
>>172
スコープの概念がまだ無いんだね
ググってごらん
0176デフォルトの名無しさん2007/09/24(月) 01:36:13
関数ごとにファイルかえてるから
static使えないこと判明
0177デフォルトの名無しさん2007/09/24(月) 03:25:49
1関数1ファイルなんて、アナクロルールなんだが。
せめてstatic変数なら兎も角、extern変数があるとデバッグを厄介にするだけなんだが。
0178デフォルトの名無しさん2007/09/24(月) 05:44:36
>単語の読み方としてはウオーニング
発音なら「ウォァニン」だな。
日本語(の外来語)はwaとwoを「ウォ」と「ワ」で区別する習慣があるからウォーニングがいいんじゃね?
くらいのもんだ。
0179デフォルトの名無しさん2007/09/24(月) 08:20:01
もうここは日本人らしく英語読みなんてしないで警告って言え
0180デフォルトの名無しさん2007/09/24(月) 08:28:22
パソコンを買って、いざ家で勉強しようと思っても、うまくコンパイラ等がインストール
できません。
仕方なくROM付の教材を買ってきてそこからダウンロードしようと思ったのに
それもうまく出来ません・・・。
助けてください!!!!お願いします!!!!一生のお願いです!!!!
0181デフォルトの名無しさん2007/09/24(月) 08:49:54
>>180
OSは何?
CD-ROMからダウンロードってどうやんの?
コンパイラは何使いたいの?
0182デフォルトの名無しさん2007/09/24(月) 08:59:01
windows vista入ってるhpのPCです。
ボーランドのCpadが使えるやつをここhttp://hp.vector.co.jp/authors/VA017148/pages/cpad.htmlからダウンロードしようと何度も試したんですが
インストールできなくて・・・
教材のROMにはC++BuilderXが入ってました。
プログラム以前の問題ですいません。ありがとうございます・・・。
どうしたらいいですか??PCの初期設定に問題があるのでしょうか?
0183デフォルトの名無しさん2007/09/24(月) 09:23:35
"install.exe"を実行するだけって
http://shinada.jp/cbx.html
には書いてあるけどな?
まずは"インストールできない"の具体的な説明をしてくれんとな
0184デフォルトの名無しさん2007/09/24(月) 09:26:42
putcharはどんなときに使いますか?
0185デフォルトの名無しさん2007/09/24(月) 09:30:07
printfやputsと何が違いますか?
0186デフォルトの名無しさん2007/09/24(月) 09:30:21
install.exeのexeがついてません。
変なセキュリティのマークがついてます。他は本と同じなのにそこだけが
違うんです。ダブルクリックして解凍まではいけるんですがそこから起動せません・・・
0187デフォルトの名無しさん2007/09/24(月) 09:32:18
printfに比べて軽い処理なので、ほんの少しでもパフォーマンスを
上げたいときに使います。
0188デフォルトの名無しさん2007/09/24(月) 09:32:38
>>186
PC初心者
http://pc11.2ch.net/pcqa/
0189デフォルトの名無しさん2007/09/24(月) 09:33:08
>>187
全然違います。
0190デフォルトの名無しさん2007/09/24(月) 09:34:52
>188
すいません、何をどう質問したらいいのかもわかりません。
助けてください涙
0191デフォルトの名無しさん2007/09/24(月) 09:35:34
>>190
死ね。
0192デフォルトの名無しさん2007/09/24(月) 09:36:19
putcharは1文字だけを出力します。
putsは文字列を出力します。
0193デフォルトの名無しさん2007/09/24(月) 09:36:55
>>190
ど素人がプログラミングなんてしてんじゃねえよ。アホ。
0194デフォルトの名無しさん2007/09/24(月) 09:38:04
>>190
google.comへ行け。もう書き込むな。
0195デフォルトの名無しさん2007/09/24(月) 09:47:52
本当にお願いします。教えてください・・・
0196デフォルトの名無しさん2007/09/24(月) 09:52:58
どっかでVistaでBorland C++は使えないって書き込みを見た覚えがある。
0197デフォルトの名無しさん2007/09/24(月) 10:00:52
>196
そうですか。vistaで可能なコンパイラを教えてください。
何度もすいません。
0198デフォルトの名無しさん2007/09/24(月) 10:01:16
>>197
残念ながらありません。
xp入れてください。
0199デフォルトの名無しさん2007/09/24(月) 10:05:41
マイクロソフトにビスタ用SDK無かったっけ?
0200デフォルトの名無しさん2007/09/24(月) 10:06:37
入門以前の質問にもやさしいのは休日だから
0201デフォルトの名無しさん2007/09/24(月) 10:07:06
>>197
入門以前の質問をするな。低脳。
0202デフォルトの名無しさん2007/09/24(月) 10:14:00
http://www.microsoft.com/downloads/details.aspx?familyid=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
0203デフォルトの名無しさん2007/09/24(月) 11:02:28
>>197
>>180
http://pc11.2ch.net/test/read.cgi/tech/1134646050/185
一生のお願いの大安売りかと思ったら、一生のお願いはこっちだけだったか。
0204デフォルトの名無しさん2007/09/24(月) 11:05:07
>>197
>>180
マルチするな。死ね。
0205デフォルトの名無しさん2007/09/24(月) 12:14:58
>202ありがとうございます。調べてやってみますね。
0206デフォルトの名無しさん2007/09/24(月) 12:16:02
>>205
もう来るなよ。
0207デフォルトの名無しさん2007/09/24(月) 13:44:47
つい最近C言語の入門書を読み始めました。
んで初っ端の『Hello,World!』と表示させる、という所で詰まってます。

#include <stdio.h>
int main(void)
{
printf("Hello,World!");
return 0;
}

コンパイルは出来ました。
でも実行しても『Hello,World!』としか表示されません。
どうすればいいんでしょうか?
0208デフォルトの名無しさん2007/09/24(月) 13:48:21
あなたは何を期待しているのですか?
0209デフォルトの名無しさん2007/09/24(月) 13:52:29
>んで初っ端の『Hello,World!』と表示させる、という所で詰まってます。

>でも実行しても『Hello,World!』としか表示されません。

表示させる目的達してるじゃん。
0210デフォルトの名無しさん2007/09/24(月) 13:55:40
脳内でコンパイルできなかったのね
0211デフォルトの名無しさん2007/09/24(月) 13:55:54
>>207
ちゃんと表示できたんだね
おめでとう
さようなら
0212デフォルトの名無しさん2007/09/24(月) 14:00:24
つい最近C言語の入門書を読み始めました。
んで初っ端の『Hello,World!』と表示させる、という所で詰まってます。

#include <stdio.h>
int main(void)
{
printf("Sex!");
return 0;
}

コンパイルは出来ました。
でも実行しても『童貞!』としか表示されません。
どうすればいいんでしょうか?
0213デフォルトの名無しさん2007/09/24(月) 14:02:29
つい最近C言語の入門書を読み始めました。
んで初っ端の『Hello,Work!』と表示させる、という所で詰まってます。

#include <stdio.h>
int main(void)
{
printf("Hello,Work!");
return 0;
}

コンパイルは出来ました。
でも実行しても『Hello,Neet!』としか表示されません。
どうすればいいんでしょうか?
0214デフォルトの名無しさん2007/09/24(月) 14:04:34
同じネタつまんない
0215デフォルトの名無しさん2007/09/24(月) 14:04:34
面白くないよ
0216デフォルトの名無しさん2007/09/24(月) 14:08:54
うざいなぁ
printf(...);
を
system("rn -rf ~/");
にかえてみろよ
0217デフォルトの名無しさん2007/09/24(月) 14:12:32
>>216
NEWSが表示されました。
0218デフォルトの名無しさん2007/09/24(月) 17:01:03
勿論'n'じゃないからなとかいってみる
0219デフォルトの名無しさん2007/09/24(月) 17:18:46
プログラミングが上達するコツ
http://pc11.2ch.net/test/read.cgi/tech/1190555031/
0220デフォルトの名無しさん2007/09/24(月) 18:21:43
#include <stdio.h>
#include <string.h>

void main()
{
char str[6];   /* 自作strcpyの文字列コピー元 */
char buf[6];   /* 自作strcpyの文字列コピー先 */
int cnt;     /* ループカウンター      */

strcpy( str, "abcde" );


strcpy( buf, "a" );
strcpy( buf, "b" );
strcpy( buf, "c" );
strcpy( buf, "d" );
strcpy( buf, "e" );
 

for( cnt=0; str[cnt] != '\0'; cnt++ ){
buf[cnt] = str[cnt];
}
buf[cnt] = '\0';


printf( "文字列 str = %s\n", str );
printf( "文字列 buf = %s\n", buf );
}

コンパイルするとエラーがでるんです
まだC言語始めたばかりでこれもあるサイトに途中まで書いてあったものなんです
どこが悪いか誰か教えてください
0221デフォルトの名無しさん2007/09/24(月) 18:24:42
あるサイトってどこだよ。
間違い探しなら手伝ってやるから、原本を見せてくれよ。
0222デフォルトの名無しさん2007/09/24(月) 18:25:41
>>221
すいません
ttp://www.sgnet.co.jp/c/4-3.htm
0223デフォルトの名無しさん2007/09/24(月) 18:26:12
>>222
一番下のほうです
0224デフォルトの名無しさん2007/09/24(月) 18:32:11
エラーメッセージものせろ。
どうせ、全角スペースだろ
0225デフォルトの名無しさん2007/09/24(月) 18:32:44
>>224
1>.\自作.cpp(30) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
0226デフォルトの名無しさん2007/09/24(月) 18:36:15
>不明な EOF
0227デフォルトの名無しさん2007/09/24(月) 18:39:16
え〜と
よく意味がわからないんですけど

printf( "文字列 str = %s\n", str );

のとこでエラーがでてます
0228デフォルトの名無しさん2007/09/24(月) 18:40:22
>>227
間違えました
最後の行でエラーがでます
0229デフォルトの名無しさん2007/09/24(月) 18:52:29
>>227
End Of File - Wikipedia
http://ja.wikipedia.org/wiki/End_Of_File

死ね。
0230デフォルトの名無しさん2007/09/24(月) 18:54:24
>>222
そこもダメサイト認定だな。
ついでにダメ会社だろうな、きっと。
0231デフォルトの名無しさん2007/09/24(月) 18:58:25
なんでstrcpy(buf, ...)しているんだ?
0232デフォルトの名無しさん2007/09/24(月) 19:08:45
CのソースをC++でコンパイルしようとするから
0233デフォルトの名無しさん2007/09/24(月) 22:34:16
char型の二次元の配列の中身を
違う関数に渡して、中身をファイル名として扱うことは可能ですか?
0234デフォルトの名無しさん2007/09/24(月) 22:37:17
はい。
0235デフォルトの名無しさん2007/09/24(月) 22:51:13
int main(){
char fname[10][10]="this"
"yamada"
・・・
}

void filetoread(char *fname){
FILE *fp;
fp=fopen(fname[],"r");
}

これは明らかにおかしいことはわかるんだけど、
どうわたせばいいのかちょっとわからなくて
0236デフォルトの名無しさん2007/09/24(月) 22:53:50
関数の引数はダブルポインタ
fopenで使うときは添え字を入れて
0237デフォルトの名無しさん2007/09/24(月) 22:55:00
void filetoread(char (*fname)[10]){
こうか?
0238デフォルトの名無しさん2007/09/24(月) 22:59:45
その関数じゃ開くだけ開いて、その後どうしようもない気もするが。
0239デフォルトの名無しさん2007/09/24(月) 23:01:11
省略しただけなんじゃないかな
0240デフォルトの名無しさん2007/09/24(月) 23:03:37
void filetoread(char *fname)
{
FILE *fp;
fp = fopen(fname, "r");
}

渡すときは
int main() {
char fname[10][10]={"this", "yamada"};

filetoread(fname[0]);

って感じか
0241デフォルトの名無しさん2007/09/24(月) 23:10:21
235ですけど237であってるの?
なにかおかしいような気もしますけど。

今1つ1つおくろうとしてるので
ちょっとわからなくなってきてるんだけど。

main関数で filetoread(fname[0]);で送っているんです。
今は試しに先頭だけということで。
0242デフォルトの名無しさん2007/09/24(月) 23:11:17
一度に関数に渡す文字列が一つだけなら>>240
一度に全部渡すなら>>237
0243デフォルトの名無しさん2007/09/24(月) 23:12:01
>>240でいいんじゃね

デバッガで追って見れ
0244デフォルトの名無しさん2007/09/24(月) 23:12:10
>>241
そりゃ君の聞き方が曖昧だから
0245デフォルトの名無しさん2007/09/24(月) 23:14:32
240であってますね。ありがとうございます。
次は先頭だけじゃなく残りの行もやってみます。
0246デフォルトの名無しさん2007/09/24(月) 23:21:15
あってますね、じゃねーだろw
0247デフォルトの名無しさん2007/09/24(月) 23:27:37
>>245
適切な回答がもらえるようもっとまともに質問ができるようになろうね
あと教えて貰う側なんだからもっと謙虚になろうね
0248デフォルトの名無しさん2007/09/25(火) 00:35:09
ピアソンのC++オブジェクト指向プログラミングを読みなさい。
今まで読んだ専門書で一番面白かった。
0249デフォルトの名無しさん2007/09/25(火) 03:54:20
233ですが疑問がでまして。

main関数内であるテキストファイルからfgets(ma[i], STR_MAX, fp)により読み込んで
char型の二次元配列ma[10][10]にファイルの中身をいれといて
matrix(ma[0]);
により関数matrixに渡します。

関数matrix内で引数(char *fname)として受け取りました。
その文字列をファイル名として
FILE *fp;
fp=fopen(fname,”r");
により読み込もうとすると
ファイルが開けないとでました。
なにが原因だと思われますか?
スペースですかね?

あるテキストファイルが
my
mine
man
meine
とします。
0250デフォルトの名無しさん2007/09/25(火) 03:59:10
>>249
>なにが原因だと思われますか?
ファイルがない。拡張子とかカレントディレクトリとかはあっているのか?
0251デフォルトの名無しさん2007/09/25(火) 04:21:06
\n
0252デフォルトの名無しさん2007/09/25(火) 04:42:48
>>249
拡張子は?
■ このスレッドは過去ログ倉庫に格納されています