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

このエントリーをはてなブックマークに追加
>>948
そりゃ、実行ファイルのサイズが大きくなるからだろ。
(´-`).。oO(つーか、今更LSI-Cかよ‥‥)
>>952
使う関数だけリンクすればいいじゃん。
LSI-Cって何?
957デフォルトの名無しさん:02/08/04 23:06
>>950
新スレよろ
958ななし:02/08/04 23:25
>>900 'C'
959デフォルトの名無しさん:02/08/05 00:24
C言語
ファイルポインタを使って円の面積を計算するプログラム、教えてください。
ファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積





10
960デフォルトの名無しさん:02/08/05 00:26
なんでファイルポインタを使うのか良く分からん。
「ファイル上の10個の数値を使って・・・・」ならまだしも。
961959:02/08/05 00:28
ファイル上の10個の数値を使って・・・・ということです。
962デフォルトの名無しさん:02/08/05 00:28
それに数値の型も必要だ
963959:02/08/05 00:30
数値はdouble型で
964959:02/08/05 00:32
floatがいい
>>964
なぜわざわざC言語でfloatを使おうとするのか小一時間(略
floatの代わりにfroat使ってはいかが?

typedef float froat;
ワラタ。不毛すぎw
968デフォルトの名無しさん:02/08/05 01:03
>>959
結果的にはマルチ
969デフォルトの名無しさん:02/08/05 01:07
ネタっぽいが
ファイルの入出力、円周率の計算、表示
の全てを聞いているなら以下様々な洗礼を受けると思われ。
970959:02/08/05 01:11
#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の数字は与えられている場合どうするの?
971959:02/08/05 01:12
FILE *fp;
を使いたいんだが
972デフォルトの名無しさん:02/08/05 01:15
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 );
}

あとはデバッガで追っていじってちょ。
973959:02/08/05 01:19
もう少しシンプルにならない?
#include <stdio.h>

main()
{
 float r,s
FILE *fp
みたいな形で
974959:02/08/05 01:20
もう少しシンプルにならない?
#include <stdio.h>

main()
{
 float r,s
 FILE *fp
みたいな形で
975デフォルトの名無しさん:02/08/05 01:23
>>974
お前は数値を一個づつファイルから読ませたいのかと。
・・・以下略
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);
}
>974
天然君? 972のプログラムが理解できないならプログラムしないほうがいいよたぶん。
978 :02/08/05 02:26
>>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");
}
979通行人M:02/08/05 04:59
ついでにどなたかご教授お願いします。

#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)は、何がどう違うのですか?
980260:02/08/05 05:16
#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の数字は与えられている場合どうするの?

981260:02/08/05 05:17
面積計算は必要です。
982260:02/08/05 05:18
出力は
1  3.14






な感じになるようにお願いします
>>979
getsとfgetsの仕様の違いに引掛ってるな。
getsは末尾の'\n'を取り除くが、fgetsは取り除かない。

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

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

2にCmachineについての記述を追加してみました。
ただ、省略されちゃった。
987通行人M:02/08/05 11:25
>>983

そうか!!
それを忘れてた!!!
ありがとうございます。
かれこれ5時間位なやんでました。
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

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




991 :02/08/06 21:43
ん?
C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/
ん?
埋め立て
DigDug
埋め立て〜
埋めるずら
ぺったんぺったんお餅つき
                           ,,,,;;;;;;;;;;;;;;;;;;;;,,,,,,
                         ,,;;;;;;;;;;;;;;;;;;;;;;---、;:;:;:;:;:,,,
                       /;;;;;;;;;;,-'''"     ゙'''ヽ;;;;;;ヽ
                       /;;;;;;;;;'''           ヽ;;;;l
                      /;;;;;;;;;'"             _ヽ、
             r‐、'" )    i';;;;;;;;;;;            ,,;;;;;;-=ヽ、
            /  / /     |;;;;;;;;;;|  ,,,,,;;;;;;;;;-、    ‐'"゙_,,,,,,,_\
          r‐、' ヽ/ヽ/゙l    |;;;;;;;;/ /-─'''''''"ヽ   "‐=二 ̄ヽ、  い〜ち
         /  ノ / /、ノ     |;;;;;;|  '",,,-==‐ ヽ  " 、      ヽ   に〜い
        /ヽ、/ヽ/ヽ/ /    ,┴、;|  ==ニ-‐'" ,    ヽ、     ゙i   せんげっと
       /ヽ、/  / /、_/     |l |ヽl        /l      .)\    i
      /   /--/、/_ /     \|lノl       /└-‐ヽ-‐'    ヽ   i
     / ─'''"    ''、/       l、 ゙|      /   ,,---'ニ=メ i  .|
    /          /        ヽ-i      i'  /-l「ヽ┼+// ;;  /
   ./ ─-、__,,-- /          ヽ、    ヽ=ヽ─++-''ノ    /、
  /        / ̄ヽ          ,,,,\    ヽ  ゙‐─''''''"~    / ヾヽ、
 /        /    ゙\____,,-''''"   \               / ) 
./        /     l'"      ヽ、    \ヽ、           / /
        l      l    __,,,,ノ      \ ゙''ヽ 、,,,__,,;-'" /
        l      ,,,-─''"             ヽ、,,,       ,,‐"
       人 ,,,,,,─''"                    ゙゙゙'''''''''''''''"~
     -‐''''"/
またーりげとー
999 :02/08/06 22:16
( ´∀`)取ろうかなぁ
げげ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。