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

C言語なら、俺に聞け! <27>

レス数が1000を超えています。これ以上書き込みはできません。
0001日下部? ということにしたいのですね? :)NGNG
C言語質問スレッド Part 26

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART4
http://pc.2ch.net/test/read.cgi/tech/1022961238/l50

・前スレ

<26> http://pc3.2ch.net/test/read.cgi/tech/1026048820/
<25> http://pc.2ch.net/test/read.cgi/tech/1024918442/
<24> http://pc.2ch.net/test/read.cgi/tech/1024033400/
<23> http://pc.2ch.net/test/read.cgi/tech/1023024817/

コンパイラなどのリンクは>>2-3 あたり
void日下部氏の激動の半生は過去スレを参照
0951デフォルトの名無しさんNGNG
>>948
入っているぞ。
0952デフォルトの名無しさんNGNG
>>948
そりゃ、実行ファイルのサイズが大きくなるからだろ。
0953デフォルトの名無しさんNGNG
(´-`).。oO(つーか、今更LSI-Cかよ‥‥)
0954デフォルトの名無しさんNGNG
>>952
使う関数だけリンクすればいいじゃん。
0955デフォルトの名無しさんNGNG
LSI-Cって何?
0956デフォルトの名無しさんNGNG
>>955
>>2
0957デフォルトの名無しさんNGNG
>>950
新スレよろ
0958ななしNGNG
>>900 'C'
0959デフォルトの名無しさんNGNG
C言語
ファイルポインタを使って円の面積を計算するプログラム、教えてください。
ファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積
1
2
3
・
・
10
0960デフォルトの名無しさんNGNG
なんでファイルポインタを使うのか良く分からん。
「ファイル上の10個の数値を使って・・・・」ならまだしも。
0961959NGNG
ファイル上の10個の数値を使って・・・・ということです。
0962デフォルトの名無しさんNGNG
それに数値の型も必要だ
0963959NGNG
数値はdouble型で
0964959NGNG
floatがいい
0965デフォルトの名無しさんNGNG
>>964
なぜわざわざC言語でfloatを使おうとするのか小一時間(略
0966デフォルトの名無しさんNGNG
floatの代わりにfroat使ってはいかが?

typedef float froat;
0967デフォルトの名無しさんNGNG
ワラタ。不毛すぎw
0968デフォルトの名無しさんNGNG
>>959
結果的にはマルチ
0969デフォルトの名無しさんNGNG
ネタっぽいが
ファイルの入出力、円周率の計算、表示
の全てを聞いているなら以下様々な洗礼を受けると思われ。
0970959NGNG
#include <stdio.h>

#define PI 3.14 /* 円周率 */

main()
{
float r, S;

scanf("%g", &r);
S = r * r * PI; /* 円の面積 */
printf("%g\n", S);
}

こんな感じのを
*fp使って、ファイルには1から10の数字は与えられている場合どうするの?
0971959NGNG
FILE *fp;
を使いたいんだが
0972デフォルトの名無しさんNGNG
const charfilename[] = "ten_floats.dat";
float ten_float_ctrl[10] = {0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0},ten_float[10];
FILE*stream = NULL;

stream = fopen( filename, "a+" );

if(stream){
//fwrite((void*)&ten_float_ctrl[0],sizeof (float),10,stream);
fread((void*)&ten_float[0],sizeof (float),10,stream);
fclose( stream );
}

あとはデバッガで追っていじってちょ。
0973959NGNG
もう少しシンプルにならない?
#include <stdio.h>

main()
{
 float r,s
FILE *fp
みたいな形で
0974959NGNG
もう少しシンプルにならない?
#include <stdio.h>

main()
{
 float r,s
 FILE *fp
みたいな形で
0975デフォルトの名無しさんNGNG
>>974
お前は数値を一個づつファイルから読ませたいのかと。
・・・以下略
0976デフォルトの名無しさんNGNG
main(){
FILE *fp=fopen("num-list","rt");
float r; char s[80];

fgets(s,78,fp);
sscanf(s,"%f\n",&f);
printf("%f\n",r*r*PI);
}
0977デフォルトの名無しさんNGNG
>974
天然君? 972のプログラムが理解できないならプログラムしないほうがいいよたぶん。
0978 NGNG
>>970
1から10まで与えられていることが分かっているのであれば、
こうでいいんじゃないか?

#include <stdio.h>
main()
{
FILE *fp = stdout;
fprintf(fp, "1 3.14\n2 12.56\n3 28.26\n4 50.24\n5 78.5\n6 113.04\n7 153.86\n8 200.96\n9 254.34\n10 314.0\n");
}
0979通行人MNGNG
ついでにどなたかご教授お願いします。

#include <stdio.h>
main()
{
FILE *fp;
char buf[100];

printf("ファイル名を入力しなさい");
gets(buf);

  /*  getsならファイルに書き込みできるけど
   *  fgets(buf,100,stdin)ならファイルに書き込みできません。
   */
fp=fopen(buf,"w");


 if(fp == NULL)
 {
fprintf(stderr,"エラーです");
 }

fprintf(fp,"123");
fclose(fp);

}

(getsのbuf)と(fgetsのbuf)は、何がどう違うのですか?
0980260NGNG
#include <stdio.h>

#define PI 3.14 /* 円周率 */

main()
{
float r, S;

scanf("%g", &r);
S = r * r * PI;
printf("%g\n", S);
}

こんな感じのを
*fp使って、ファイルには1から10の数字は与えられている場合どうするの?

0981260NGNG
面積計算は必要です。
0982260NGNG
出力は
1  3.14
2
3
・
・


な感じになるようにお願いします
0983デフォルトの名無しさんNGNG
>>979
getsとfgetsの仕様の違いに引掛ってるな。
getsは末尾の'\n'を取り除くが、fgetsは取り除かない。

だから、たとえば
fgets(buf, sizeof(buf));
の入力待ちで
hoge[cr]
したとき、bufに入ってる文字列は"hoge\n"だ。
"hoge\n"なんてファイル名は普通ないから、それで開けないのだろう。
末尾の\nを取り除くべし。
0984983NGNG
すまん、細かいところ間違えた。
fgets(buf, sizeof(buf)); /* × */
fgets(buf, sizeof(buf), stdin); /* ○ */
だったな。
0985983 ◆HIHn86y. NGNG
この時間だと人少ないし、次スレ立てておくかね。
0986983 ◆HIHn86y. NGNG
立てますた

http://pc3.2ch.net/test/read.cgi/tech/1028495798/

2にCmachineについての記述を追加してみました。
ただ、省略されちゃった。
0987通行人MNGNG
>>983

そうか!!
それを忘れてた!!!
ありがとうございます。
かれこれ5時間位なやんでました。
0988デフォルトの名無しさんNGNG
C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/l50






0989デフォルトの名無しさんNGNG
C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/l50


C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/l50

C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/l50




0990デフォルトの名無しさんNGNG
http://www5e.biglobe.ne.jp/~trakoala/r3/R3_temp.swf?inputStr=C%8C%BE%8C%EA%82%C8%82%E7%81A%89%B4%82%C9%95%B7%82%AF%81I%20
0991 NGNG
ん?
0992デフォルトの名無しさんNGNG
C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/
0993デフォルトの名無しさんNGNG
ん?
埋め立て
DigDug
0994デフォルトの名無しさんNGNG
埋め立て〜
0995デフォルトの名無しさんNGNG
埋めるずら
0996デフォルトの名無しさんNGNG
ぺったんぺったんお餅つき
0997デフォルトの名無しさんNGNG
                           ,,,,;;;;;;;;;;;;;;;;;;;;,,,,,,
                         ,,;;;;;;;;;;;;;;;;;;;;;;---、;:;:;:;:;:,,,
                       /;;;;;;;;;;,-'''"     ゙'''ヽ;;;;;;ヽ
                       /;;;;;;;;;'''           ヽ;;;;l
                      /;;;;;;;;;'"             _ヽ、
             r‐、'" )    i';;;;;;;;;;;            ,,;;;;;;-=ヽ、
            /  / /     |;;;;;;;;;;|  ,,,,,;;;;;;;;;-、    ‐'"゙_,,,,,,,_\
          r‐、' ヽ/ヽ/゙l    |;;;;;;;;/ /-─'''''''"ヽ   "‐=二 ̄ヽ、  い〜ち
         /  ノ / /、ノ     |;;;;;;|  '",,,-==‐ ヽ  " 、      ヽ   に〜い
        /ヽ、/ヽ/ヽ/ /    ,┴、;|  ==ニ-‐'" ,    ヽ、     ゙i   せんげっと
       /ヽ、/  / /、_/     |l |ヽl        /l      .)\    i
      /   /--/、/_ /     \|lノl       /└-‐ヽ-‐'    ヽ   i
     / ─'''"    ''、/       l、 ゙|      /   ,,---'ニ=メ i  .|
    /          /        ヽ-i      i'  /-l「ヽ┼+// ;;  /
   ./ ─-、__,,-- /          ヽ、    ヽ=ヽ─++-''ノ    /、
  /        / ̄ヽ          ,,,,\    ヽ  ゙‐─''''''"~    / ヾヽ、
 /        /    ゙\____,,-''''"   \               / ) 
./        /     l'"      ヽ、    \ヽ、           / /
        l      l    __,,,,ノ      \ ゙''ヽ 、,,,__,,;-'" /
        l      ,,,-─''"             ヽ、,,,       ,,‐"
       人 ,,,,,,─''"                    ゙゙゙'''''''''''''''"~
     -‐''''"/
0998デフォルトの名無しさんNGNG
またーりげとー
0999 NGNG
( ´∀`)取ろうかなぁ
1000デフォルトの名無しさんNGNG
げげ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。