928 :
デフォルトの名無しさん:04/09/13 15:07:05
すいませんこのようなプログラムを作ったのですがいろいろいじっても動かないのです。
#include <stdio.h>
void main()
{
FILE *fp;
char str;
fp=fopen("test.txt","r");
if(fp==NULL){
printf("ファイルのオープンに失敗しました。\n");
}
else
{
while (feof(fp)!=0)
{
fscanf(fp,"%s",str);
printf(str);
}
}
}
feofはEOFになると0を返すようなので返さない間ファイルを読んで表示させたいのですが
何も表示されませんでした。
どなたかご教授願います・・
あ、すいません半角スペースは消えてしまうのを忘れていました見づらくて申し訳ありません。
>>928 char型の値を読み込むときは%cを使え。%sはcharへのポインタを渡す必要がある。
たぶんやりたいのはこうだと思う。
while (feof(fp) != 0)
{
fscanf(fp, "%c", str);
printf("%c", str);
}
だけどただ単に1文字ずつ読み込んで表示したいのなら、fscanf/printfよりもfgetc/putcharの方がいい。
930 _| ̄|○名にやってんだ折れ…
>>928 char str[1024];
fscanf(fp, "%.1024s", str);
933 :
デフォルトの名無しさん:04/09/13 18:18:38
C言語(RT-Linuxのプログラム)です。
------------------------------------
・・・
pthread_t theThread;
void *thread_code(void *t)
{
・・・
}
main()
{
・・・
pthread_attr_init (&attr);
sched_param.sched_priority = 4;
pthread_attr_setschedparam (&attr, &sched_param);
ret = pthread_create (&theThread, &attr, thread_code, (void *) 0 );
・・・
}
優先度4のスレッド(thread_code 0)を作る部分なのですが、
main の中のこの4行を、優先度、スレッド名、スレッド番号を持つマクロに変換するには
どのようにしたらよいでしょうか?
>>933 attrは作業用変数か?
それだと不可能。
戻り値をマクロに引数として渡すか、マクロをやめて関数にすることを検討するといい。
935 :
デフォルトの名無しさん:04/09/13 19:35:53
C言語の質問です
1、2、3の駆動するモーターとスイッチが1つあり
1のモーターだけが3秒間、2のモーターだけが3秒間
モーター1と2が同時に10秒間駆動し、この3つの動きははランダムに行われて
スイッチが押されると1、2は駆動を止めて3が5秒間駆動し、5秒後はまた同じ事が繰り返される
というプログラムをできるだけ簡単に作って下さい
そのモーターとスイッチの制御方法を言え
>935
何のOSで組んでいるのですか?
WindowsやLinuxではあきらかに不向きのようなきが
宿題スレなんだから。実際に繋がってるわけじゃないだろ。
>>937 組込みではOSが無しの場合も良くあるよ。
環境依存だし、もしここに書くなら環境をちゃんと書いてもらわないとダメかもね。
940 :
935:04/09/13 20:16:36
スイッチは手動制御だと思います
PICを使ってやるんですが、自分では何がなんやら全く分かりません…
自分の専門学校のパソコンはウインドウズです
>>940 氏んでください。
君のPCに入っているOSなんか聞いていません。
PIC使うにしても回路図が解からないとどのポートに出力するのか解かりません。
C使うにしてもどの処理系を使うのか書いてもらえないと実装できません。
PICにもいろいろあります。メジャーなのはPIC16F84とか?
一番の問題はスレ違いということですね。
逝ってよし
943 :
デフォルトの名無しさん:04/09/13 20:31:36
まあまあ、そんなこと言うなよ。
944 :
933:04/09/13 20:40:31
>>934 レスありがとうございます。
遅れてすみません。
attrが他で使用されないと仮定の上ではどうでしょうか?
945 :
デフォルトの名無しさん:04/09/13 20:43:45
947 :
デフォルトの名無しさん:04/09/13 22:04:45
二つの抵抗値をキーボードから入力し、並列接続したときの合成抵抗の値を求めて、
出力するプログラムを作成しなさい。なお、各抵抗値の入力は整数型で行い、
合成抵抗は実数型で小数第二位まで表示するものとする。
と、いう宿題がでたのですが
#include <stdio.h>
void main(void)
{
int i1;
int i2;
float i3=1/(1/i1+1/i2);
printf("R1を入力してください→");
scanf("%d",&i1);
printf("R2を入力してください→");
scanf("%d",&i2);
printf("合成抵抗は %d です。",i3);
}
と、作ってみたのですがborlandのコンパイラでコンパイルすると
2エラーでてしまいます・・・・何が原因なのでしょうか?
>>947 バッカヤロー!ひき殺されてーのか!
i1,i2がまだ入力されてないのにi3計算してんじゃねーぞ!
>>947 エラー名書けや氏ねボケカス
#include <stdio.h>
int main(void)
{
int i1;
int i2;
float i3;
printf("R1を入力してください→");
scanf("%d",&i1);
printf("R2を入力してください→");
scanf("%d",&i2);
i3=1.0/(1.0/i1+1.0/i2);
printf("合成抵抗は %d です。",i3);
return 0;
}
間違ったじゃねえかこのやろう
printf("合成抵抗は %f です。",i3);
>>948 バカヤロー!
i3はfloatだろうが!
printf("合成抵抗は %f です。",i3);
>>952 どこにレスしてんだおまえは
しかもおせえんだよ
>>947 double から float に変換してんじゃねーよクソボケ
#include <stdio.h>
int main(void)
{
int i1;
int i2;
double i3;
printf("R1を入力してください→");
scanf("%d",&i1);
printf("R2を入力してください→");
scanf("%d",&i2);
i3=1.0/(1.0/i1+1.0/i2);
printf("合成抵抗は %f です。",i3);
return 0;
}
955 :
947:04/09/13 22:17:39
>>950 951 952
ありがとうございました!!
エラー名かきわすれ申し訳ございませんでした・・・
さっそく修正してみたいと思います。
957 :
デフォルトの名無しさん:04/09/13 22:19:06
すいません、
>>933>>944ですが、
どなたか回答をいただけないでしょうか・・・?
よろしくお願いします。
>>957 極力マクロを使うな。inlineで十分だろ。デバッグやりにくいし。
マクロにしないと駄目な理由を書いてくれ。
Cだからinline不可でわ?
960 :
947:04/09/13 22:27:33
>>956 すいません、入力してるときにカキコマレタようでみてませんでした・・・
>>959 ああ、inlineの使えないCもあったんだった・・・
962 :
デフォルトの名無しさん:04/09/13 22:33:11
963 :
933:04/09/13 22:45:19
>>958 では inline を使うとどのようにできるのでしょうか?
すみません・・・
964 :
デフォルトの名無しさん:04/09/13 22:48:05
>>963 調べたりする気のないヤツはプログラムするな
967 :
933:04/09/13 23:14:49
>>964-966 少し調べてみました。みなさん、レスありがとうございます。
inline はC++のようですが、Cでも使えるのでしょうか?
そこが心配なのですが・・・
例えば
>>933だと
以下のようにnew というinline関数を定義すると
pthread_attr_init (&attr);
sched_param.sched_priority = 4;
pthread_attr_setschedparam (&attr, &sched_param);
ret = pthread_create (&theThread, &attr, thread_code, (void *) 0 );
は、どのように使用すればよいのでしょう?
--------------------------------------------
pthread_t theThread;
inline int new(priority, thread, number)
void *thread_code(void *t)
{
・・・
}
main()
{
・・・
}
Cでもinlineは仕様できます。
C99に対応したコンパイラなら。
970 :
デフォルトの名無しさん:04/09/13 23:24:09
>>968 厳しいですね・・・(涙)
いろいろと調べてるのですが、なかなか分からなくて・・・
すみません・・・
+ 使用
- 仕様
>970
インライン云々の前にふつうの関数がわからんのではないかという疑念を抑えることができない
973 :
マイク ◆yrBrqfF1Ew :04/09/14 07:44:00
inlineをつけると「俺はfunctionをinline展開してくれるように切望してる」と
コンパイラに対して意思表示ができる
974 :
デフォルトの名無しさん:04/09/14 08:42:08
printfで出力で小数点第二位まで出力したいのですが%.2で正常に出力できますでしょうか?
>>974 試しもしないでできるかどうか聞いているのか?
Cでプログラムしてるんですが
虚数√-1ってどうやってやるんでしょうか
sqrt(-1)だとおかしくなってしまうんですが