プログラムのことについてご質問します。
先日から以下のプログラムのことについて悩んでいます。
このプログラムは、テキストファイル(内容は「名前,成績」)を読み込んで、テキストファイル(内容は「名前,成績,偏差値」)を書きだすというものなのです。てか、そのつもりで作りました。
コンパイルの時は、エラーが出ないのですが、いざ起動してみると、プログラムが終了せず、書き出しも行われません。
#include<stdio.h>
#include<math.h>
int main(int argc,char *argv[]){
FILE *rfp;
FILE *wfp;
int nline = 0;
double score[100];
double sum_score = 0;
char name[100][256];
int i;
double heikinn;
double hensati[100];
double ga[100];
double g[100];
double gg=0;
double d=0;
if (argc != 3){
fprintf(stderr,"使い方:%s 入力ファイル 出力ファイル\n",argv[0]);
return -1;
}
if ((rfp=fopen(argv[1],"r")) ==NULL){
fprintf(stderr,"%sが開けません\n",argv[1]);
return -1;
}
if ((wfp=fopen(argv[1],"w")) ==NULL){
fprintf(stderr,"%sが開けません\n",argv[2]);
return -1;
}
while(fscanf(rfp,"%[^,],%lf\n", name[nline], &score[nline]) >0){
sum_score += score[nline];
nline ++;
}
heikinn=sum_score/nline;
for (i=0; i<=nline; i++){
ga[i]=(score[i]-heikinn);
g[i] = ga[i]*ga[i];
gg += g[i];
}
for (i=0; i<=nline; i++){
d= gg/(nline-1);
hensati[i]=10*ga[i]/sqrt(d)+50;
}
for(i=0; i<=nline; i++){
fprintf(wfp,"Average score is %s, %5.2lf,%5.2lf.\n",name[i],&score[i],hensati[i]);
}
fclose(wfp);
fclose(rfp);
return 0;
}
皆様のお力をおかりできないでしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
> if ((rfp=fopen(argv[1],"r")) ==NULL){
> if ((wfp=fopen(argv[1],"w")) ==NULL){
読み込みと書き込みで同じファイルを開こうとしています。
おそらく、いったんreadで開いた後、writeに変更されてエラーにはなってないのだと思われますが、
> while(fscanf(rfp,"%[^,],%lf\n", name[nline], &score[nline]) >0){
ファイルはwriteモードなのでfscanfは入力を受け取ることが出来ないので、延々と待ち続けてるものと思われます。
No.2
- 回答日時:
デバッガとか無いの?
自分の作ったプログラムデバッグするのも、テクニック身につける一つなのですが。
>while(fscanf(rfp,"%[^,],%lf\n", name[nline], &score[nline]) >0){
多分、ここのfscanfの正規表現はおかしい気がしますが、while()に入れてるせいでコンパイラが弾いてないんじゃ無いの?(あくまで、推測ですけど。)
早いお返事をいただきありがとうございます。
疑問は、解決しました
デバッカはデバッグのことでした。
fscanfは入出力のプログラムの1つです。
拙い文でしたので 申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
float型とdouble型の変数の違い...
-
たくさんの数の平均を求める方...
-
関数におけるif文とreturn文に...
-
2次方程式の解を求めるプログ...
-
c言語のコンパイルエラー canno...
-
C言語
-
C言語を実行すると-infが出てき...
-
c言語のプログラミングについて...
-
doubleは常に%lfとするべきなのか
-
C#のプログラミングについて(...
-
C言語初心者 構造体 課題について
-
C言語で台形公式を使った二重積...
-
EXE1→DLL→EXE2数値を受け渡す方法
-
C言語のプログラムで#include<m...
-
doubleの変数にintとintの割り...
-
二次関数で
-
qsortと動的確保の2次元配列
-
ニュートン法
-
線形補間
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
float型とdouble型の変数の違い...
-
doubleの変数にintとintの割り...
-
C言語を実行すると-infが出てき...
-
C 開放してるのにエラー(doubl...
-
至急です! マクロ定義で #defi...
-
c言語で、繰り返し文の中で、0....
-
関数におけるif文とreturn文に...
-
C言語 関数プロトタイプ宣言の...
-
C言語初心者 構造体 課題について
-
C言語の型による処理速度の違い
-
Cで3乗根を求める方法
-
C言語で-23乗を取り扱うには
-
2分法で方程式の複数の解を自...
-
doubleは常に%lfとするべきなのか
-
c言語のコンパイルエラー canno...
-
C言語で直角三角形の斜辺を求め...
-
C言語のプログラムで#include<m...
-
int とdoubleの比較
-
C++で外積
おすすめ情報