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

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

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

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

過去スレ
Part 1 http://pc8.2ch.net/test/read.cgi/tech/1146700389/
Part 2 http://pc8.2ch.net/test/read.cgi/tech/1153818463/


関連スレ
くだすれC言語(初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1153542424/

【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 130
http://pc8.2ch.net/test/read.cgi/tech/1159613789/
0002デフォルトの名無しさん2006/11/09(木) 01:01:39
初めて1000とったわ

>>1乙
00039552006/11/09(木) 01:01:54
>>998
>&x

あふっorz
0004デフォルトの名無しさん2006/11/09(木) 01:04:42
&がないとさ、例えばxの中身が0x1000なら、0x1000に書き込んじゃうんだよな?
0005デフォルトの名無しさん2006/11/09(木) 01:21:12
cやってみたいんだがまず何をすればいいんだ
0006デフォルトの名無しさん2006/11/09(木) 01:21:54
>>4
そうだよ

で前レス
http://pc8.2ch.net/test/read.cgi/tech/1160682950/933 へ
こんなの感じで・・・
http://sa-wiki.com/upload/src/up0059.txt
000762006/11/09(木) 01:23:01
間違えた
http://pc8.2ch.net/test/read.cgi/tech/1160682950/983
だった
0008デフォルトの名無しさん2006/11/09(木) 01:31:25
>>5
転龍呼吸法でいいんじゃね?
マジレスすると本買って地道に一つずつ覚えて行ってくれ。
0009デフォルトの名無しさん2006/11/09(木) 01:35:44
本か…
0010デフォルトの名無しさん2006/11/09(木) 01:39:36
人生を諦めることからはじめよう。
0011デフォルトの名無しさん2006/11/09(木) 02:39:02
>>5
金を稼いで風俗へ
0012デフォルトの名無しさん2006/11/09(木) 03:07:05
sleep(500);
で、実行を待たせる処理を行いたいと思っているんですが、
sleepは何をインクルードすれば使えるんでしょうか?

webを検索してみてもすぐには出てきませんでした・・
0013デフォルトの名無しさん2006/11/09(木) 03:26:42
unistd.h
0014デフォルトの名無しさん2006/11/09(木) 03:41:10
12です
unistd.hは、windows環境ではない
unix環境のファイルなのですね。

すいません、今更ながら前スレを検索したところ、

630 :デフォルトの名無しさん :2006/11/02(木) 02:18:51
>>628
>警告 W8065 bintori.c 55: プロトタイプ宣言のない関数 'sleep' の呼び出し(関数 main )
プロトタイプ宣言がないと言われている。sleep関数のプロトタイプ宣言が書かれた
ヘッダファイルをインクルードすればいい。どのファイルかはMSDNあたりで自分で探して。

とあり、MSDNライブラリーを探したところ、
.net frameworkの中にはあるとのこと。

しかし.net frameworkが無い環境も想定しなければならず、
その場合自前で時間を計り、
導入するしかないと言うことなのでしょうか。
(長々すいません)
0015デフォルトの名無しさん2006/11/09(木) 03:45:58
C言語(gcc)で書いたプログラムから
SJISでCR/LFのhtmlファイル→EUCでLFのhtmlファイル
に書き出すのに
system("nkf --unix abc1.html > abc-1.html")
system("nkf --unix abc2.html > abc-2.html")
system("nkf --unix abc3.html > abc-3.html")
・
・(実際はfor文を使ってます。)
・
system("nkf --unix abc16.html > abc-16.html")
のように使っているけど、文字コードや改行コードを変換するのに
何か他に常套手段てあるんでしょうか?
正常に終了すれば
元ファイル28KB→書き出したファイル28KBでファイル容量は変わらないのに
たまに2・3個失敗していて、書き出したファイルが0KBになっていたり
元ファイル28KB→書き出したファイル22KBになっていたりします。
0016デフォルトの名無しさん2006/11/09(木) 04:43:55
>>15
nkfが失敗しているってことか?
だったら自前で変換するとかiconvライブラリを使うとか。
0017デフォルトの名無しさん2006/11/09(木) 08:18:25
>>14
sleep()じゃなくて Sleep() だか _sleep() って名前じゃね?
windows.h wincon.h
のどっちかだったよ。
0018デフォルトの名無しさん2006/11/09(木) 13:10:50
>>14
俺の環境だと
#include <dos.h>
void _sleep(unsigned seconds);
0019デフォルトの名無しさん2006/11/09(木) 17:03:20
複数のヘッダファイルに名前が入ってる標準関数は、どのヘッダから呼んでも構わないんでしょうか?
0020デフォルトの名無しさん2006/11/09(木) 17:34:34
>>19
試した?(怒)
0021デフォルトの名無しさん2006/11/09(木) 17:41:37
試したんですが、何か違いがあるのかなと思って…
0022デフォルトの名無しさん2006/11/09(木) 17:49:23
>>21
めんどくさいのでおk
0023デフォルトの名無しさん2006/11/09(木) 18:02:37
>>22
どうもです、気にしないことにします
0024デフォルトの名無しさん2006/11/09(木) 18:03:57
>>19
内容が同じでエラーでないならいいんじゃね?
0025デフォルトの名無しさん2006/11/09(木) 18:13:28
>>23
プリプロセッサで検索してくれ
0026デフォルトの名無しさん2006/11/09(木) 20:13:20
>>19
その関数の名前は?
0027192006/11/09(木) 20:55:50
>>24
ですよ…ね?
>>25
必要に応じてコードで使われている標準関数が多く書かれてるヘッダを選べばいいってことでしょうか?
該当の関数それ一つしか使わないならどちらでもいい、のかな
>>26
上で話題になってたsystem関数です
VC++とLSICの両方でINCLUDEフォルダにstdlib.hとprocess.hにありました
0028デフォルトの名無しさん2006/11/09(木) 21:00:21
むしろ自分で直接プロトタイプを書いてもおk
0029デフォルトの名無しさん2006/11/09(木) 21:09:49
main()
{
float r, s;

printf("円の半径を入力 :");
scanf("%f", &r);
s=3.14*r*r;
printf("s=%f\n", s);
}

で警告 W8070 test3.c 10: 関数は値を返すべき(関数 main )
と出るんだがなんで?
0030デフォルトの名無しさん2006/11/09(木) 21:11:43
関数は値を返すべきだから
0031デフォルトの名無しさん2006/11/09(木) 21:12:11
>>29
mainの型は?
0032192006/11/09(木) 21:12:15
>>28
あ、ほんとですね
ヘッダをincludeする代わりに単純にint system(const char *);でも行けました
0033デフォルトの名無しさん2006/11/09(木) 21:12:30
main() → int main(void)
return 0;の追加
0034デフォルトの名無しさん2006/11/09(木) 21:13:26
>>29で普通にできたが
0035デフォルトの名無しさん2006/11/09(木) 21:13:50
はじめたばかりで全然わからんのだが
main()だけじゃだめなのか?
そんで最後の}が10のところなんだ
0036デフォルトの名無しさん2006/11/09(木) 21:14:25
>>29
main()でもtest()でもなんでもいいだが, 明示的にtypeが指定されていない関数は,
暗黙の内にintを返す関数として扱われるから.
0037デフォルトの名無しさん2006/11/09(木) 21:15:57
#include <stdio.h> は入れてるよな?
0038デフォルトの名無しさん2006/11/09(木) 21:17:03
>>37
それはいれている
0039デフォルトの名無しさん2006/11/09(木) 21:17:07
>>37
それが無ければ真っ先に未定義の関数〜みたいなエラーが出ると思うんだが
0040デフォルトの名無しさん2006/11/09(木) 21:17:13
初心者におすすめのHP教えてくれ
0041デフォルトの名無しさん2006/11/09(木) 21:18:33
HP:100くらいないと厳しい
0042デフォルトの名無しさん2006/11/09(木) 21:18:55
>>40
猫
0043デフォルトの名無しさん2006/11/09(木) 21:19:41
本格的にやるならVCとかがないと厳しいのかな
0044デフォルトの名無しさんNGNG?2BP(204)
>>39
#includeなくてもコンパイルできるよ。
0045デフォルトの名無しさん2006/11/09(木) 21:21:45
return 0;
ってなんなんだ?
0046デフォルトの名無しさん2006/11/09(木) 21:22:36
>>44
stdioの中身でもコピーするのか?
0047デフォルトの名無しさん2006/11/09(木) 21:24:58
文字同士が同じかどうかを調べるのはどうすればいいんですか。

size_t len = wcslen((wchar_t*)path)-1;
wchar_t c = path[len];
if( c == L"\\")
swprintf_s( path, wcslen(path)+1, L"%s\\",path);
こうするとなぜかcがInt扱いになってるんですけれども。
0048デフォルトの名無しさんNGNG?2BP(204)
>>46
vc2003だと、これもエラー無しでコンパイル&実行できるけど?

main()
{
    printf("%s\n", "aaaa");
}
0049デフォルトの名無しさん2006/11/09(木) 21:32:13
Cって文字の表示・入力しかできないのか
0050デフォルトの名無しさん2006/11/09(木) 21:32:32
>>35>>40
全く分からん状態なら本の1冊でも買えっつったろヴォケェ
0051デフォルトの名無しさん2006/11/09(木) 21:32:39
>>48
それは知らなかった
でも2005じゃエラー吐くな
0052デフォルトの名無しさん2006/11/09(木) 21:33:14
>>49
それだけじゃないんだぜ
0053デフォルトの名無しさんNGNG?2BP(204)
>>51
Cとしてコンパイルしても?
0054デフォルトの名無しさん2006/11/09(木) 21:34:11
>>45
int main(void)
{
return 0;
}
mainもひとつの関数
関数で値を返すにはreturn が必要
0055デフォルトの名無しさん2006/11/09(木) 21:34:18
>>53
Cとしてコンパイルしたらエラー無くちゃんとできたんだぜ
すげえなww
0056デフォルトの名無しさん2006/11/09(木) 21:34:46
関数で値を返すってどういうことなんだ
0057デフォルトの名無しさん2006/11/09(木) 21:35:49
>>56
関数が値を返すのは関数が値を返すんだろ
0058デフォルトの名無しさん2006/11/09(木) 21:40:18
>>56
どういうことってどういうことなんだ
0059デフォルトの名無しさん2006/11/09(木) 21:49:18
>>56
関数の処理が終了して、呼び出し元に制御が戻ってきたときに、関数の中でreturnしたデータを、呼び出し元で使えるってこと
0060デフォルトの名無しさん2006/11/09(木) 21:57:07
>>56
つまり関数は値を返すってことだ
0061デフォルトの名無しさん2006/11/09(木) 22:05:00
値を返さないと関数とは言えないしな。
0062デフォルトの名無しさん2006/11/09(木) 22:07:01
値を返すファンクションを関数とよぶ。
0063デフォルトの名無しさん2006/11/09(木) 22:10:46
>>62
意味が分からん
頭痛が痛いみたいなもんか?
0064デフォルトの名無しさん2006/11/09(木) 22:11:57
値を返すプロシージャと言いたいのかな
0065デフォルトの名無しさん2006/11/09(木) 22:17:12
値をreturnする関数のファンクションが返すプロシージャが
呼び出し元に制御が戻った。
0066デフォルトの名無しさん2006/11/09(木) 22:17:13
戻り値がない場合はなんと呼ぶべきか
サブルーチン
ファンクション
どっちがいい?
0067デフォルトの名無しさん2006/11/09(木) 22:18:26
>>66
普通に関数でいいだろ
0068デフォルトの名無しさん2006/11/09(木) 22:20:40
関数って何だとかくだらん質問してるやつはケチってないで本買え。
0069デフォルトの名無しさん2006/11/09(木) 22:25:15
カオスになってきたな
0070デフォルトの名無しさん2006/11/09(木) 22:27:11
カボス?
0071デフォルトの名無しさん2006/11/09(木) 23:09:48
カバオ?
0072デフォルトの名無しさん2006/11/09(木) 23:15:06
>>66
ファンクション。
だが「関数」ではない。
0073デフォルトの名無しさん2006/11/09(木) 23:18:12
まーた始まった
0074デフォルトの名無しさん2006/11/09(木) 23:40:56
ゲ製作のHSPスレより来ますた
648 名前は開発中のものです。 sage 2006/11/09(木) 23:24:53 ID:OlISg2Xa | ▲上 | ▼下 | リロード | 10件 | 50件 | 100件 | 300件 | 1-100 | あぼ〜ん
こんなん作りました。ソース付きです。まだ完全ではないです。

http://newsstation.info/up/img/ns15294.zip
MD5:093BFE17333C4CB0C99D36CC674143F1
0075デフォルトの名無しさん2006/11/09(木) 23:47:17
関数ポインタってsugeeeee
ごちゃごちゃと表記する意味がよく判らないが
(typedefはしなくてもいいらしいが、何を何にtypedefしてるのかさっぱり分らない)
とにかく今まで悩んでたあんなことやこんなことに活用できそうな気がしてきた
0076742006/11/09(木) 23:59:14
見事誤爆。駄目だな俺
0077152006/11/10(金) 00:58:01
>>16
ありがとうございました。
とりあえずiconvライブラリ使ってみることにします。
0078デフォルトの名無しさん2006/11/10(金) 09:06:20
>>66
隣の山田さん
0079デフォルトの名無しさん2006/11/10(金) 14:09:20
Cで
コマンドを発行し、その結果を得たいのですが
サンプルはどっか転がってないですか??

たとえばCで
ifconfig
と発行し、その結果を得たい。
0080デフォルトの名無しさん2006/11/10(金) 14:14:17
man popen
0081デフォルトの名無しさん2006/11/10(金) 18:26:53
test
0082デフォルトの名無しさん2006/11/10(金) 18:36:11
直った
0083デフォルトの名無しさん2006/11/10(金) 18:37:57
なにが?
0084デフォルトの名無しさん2006/11/10(金) 18:38:08
ちょっと落ちてた
0085デフォルトの名無しさん2006/11/10(金) 18:41:22
やっぱそうだったんだ
リロードしてもエラーだからおかしいと思った
Linux板クノッピスレも落ちてた
0086デフォルトの名無しさん2006/11/10(金) 20:16:56
>>49
C言語に文字の入出力機能など御座いません。
それらは総てライブラリの仕事です。
0087デフォルトの名無しさん2006/11/10(金) 20:32:50
>>86
入門者未満はこっちへどうぞ。
ttp://pc8.2ch.net/test/read.cgi/tech/1158275665/
0088デフォルトの名無しさん2006/11/10(金) 20:44:25
ライブラリも含めてC(の処理系)。
ライブラリが無ければ、それは単なるCのコンパイラというだけ。
0089デフォルトの名無しさん2006/11/11(土) 12:28:35
>>86
正しい。

>>87-88
似非回答者はこちらへどうぞ。
ttp://pc8.2ch.net/test/read.cgi/tech/1158275665/
0090デフォルトの名無しさんNGNG?2BP(204)
>>86
こういうことを言ってみたい年頃なんだよな。
0091デフォルトの名無しさん2006/11/11(土) 13:04:51
でもまあ思い違いしてる人も多いしそれを正してやるのはよいことじゃない?
0092デフォルトの名無しさんNGNG?2BP(204)
昔、Cが流行になったろにpascalやらfortranとの比較で、IOがシンタックスに組み込まれてるか、
ライブラリになってるかとかって話題があって、そういうことを言ってるんだろうけど、
「入出力がC言語にない」って言い方は正しいのか?

0093デフォルトの名無しさん2006/11/11(土) 13:33:18
ヒント:「文字の」
0094デフォルトの名無しさん2006/11/11(土) 13:33:28
引数=入力
戻り値=出力
0095デフォルトの名無しさん2006/11/11(土) 13:40:06
>>93
そういうレスは揚げ足取られるだけだお
0096デフォルトの名無しさん2006/11/11(土) 13:57:13
VRAMいじれるOSなら可能だろ。
0097デフォルトの名無しさん2006/11/11(土) 14:04:29
まあ組込なら常識なんだがね
0098デフォルトの名無しさん2006/11/11(土) 14:14:56
bccでWindowsXP上でconsoleアプリ(単純なスクリーンエディタ)
をつくってるんですが、
画面のスクロールをconio.hのputchで全行書き直し,
movetextとかins/dellineとかを試したのですが
更新時間がとても遅く(0.3sec/line程度)なってしまいました。

VRAMをいじらずに標準(的)なライブラリで
うまく実装する方法を教えてください。
0099デフォルトの名無しさん2006/11/11(土) 14:31:28
ttp://www.vector.co.jp/soft/dl/x68/prog/se014962.html
これ見て標準関数の勉強しようかと思ってるんですが、標準関数の中のアルゴリズムってどれも大体は同じなんでしょうか?
0100デフォルトの名無しさん2006/11/11(土) 14:47:38
アルゴリズムが同じなら関数は一個で済む罠
0101デフォルトの名無しさん2006/11/11(土) 14:56:05
たしかに。
■ このスレッドは過去ログ倉庫に格納されています