![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
double x;
double y;
double z;
double x1;
double x2;
FILE *fp;
char fname[256];
printf("Output file name?");
scanf("%s", fname);
fp = fopen(fname, "r");
if(fp == NULL)
{
printf("%s file not open!\n", fname);
return -1;
}
while(fscanf(fp, "%lf, %lf", &x, &y) != EOF)
{
printf("%lf, %lf\n", x, y);
}
}
で
x₁ y₁
x₂ y₂
と並んだファイルを読み込んで表示させたいのですが
実行結果、
x₁ 0.0000
y₁ 0.0000
x₂ 0.0000
y₂ 0.0000
と謎の0.0000が入ってきてうまく表示できません。
どのようにすれば0.0000を読み込ませず、表示できるでしょうか。
(ちなみに空白を外しても同じでした。)
No.3ベストアンサー
- 回答日時:
scanf 系の書式文字列では, % ではじまる部分は (%% 以外) 変換指示としてしかるべく入力を読み込むが, それ (と空白文字) 以外は
その文字がそこにある
ことを期待する. なので, その文字がそこになかったら読み込みをそこで打ち切る.
https://en.cppreference.com/w/c/io/fscanf
返り値を確認していればわかるんだけどね.
No.2
- 回答日時:
x₁ y₁
x₂ y₂
ファイルの内容がこれならスペースで区切られているので
fscanf(fp, "%lf, %lf", &x, &y)
ここを
fscanf(fp, "%lf %lf", &x, &y)
に変更したら読み込めませんか?
No.1
- 回答日時:
具体的にはどういう内容のファイルを読み込ませてどういう出力になったんでしょうか? このプログラムで
x₁ 0.0000
y₁ 0.0000
x₂ 0.0000
y₂ 0.0000
という出力が*本当に*得られるはずはないですよね.
ところで「Output file name?」と聞いておきながらそこで与えるのが「入力のファイル名」ってのはどうなんだろう.
夜分遅くに回答有難うございます!
具体的には
0.1 5.9
0.2 6.9
0.3 7.9
0.4 8.9
0.5 9.9
といったような数値でした。
「」の部分は表にある数値を参考にして計算を行い出力させたいということなので、「数値参考するファイル名」と言うことで「output云々」にしてありました。
別段計算結果はそのファイルに再入力させるつもりはありませんでした。
ただ幾つか思考している内に
while(fscanf(fp, "%lf, %lf", &x, &y) != EOF)
{
printf("%lf, %lf\n", x, y);
の部分の3行目のprintf(“%lf,
の「,」が原因であったのがわかりました。
この「,」が 実際にどんな働きを行っていたか教えていただければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
矢印キーを押下してコンソール...
-
C言語で複数列のデータを1列の...
-
char型2つを結合し、short型に...
-
C言語で型汎用性のある関数を作...
-
ファイルを辞書順に並べ替える...
-
ファイルから数字列を16進数の...
-
reallocとstrtokの併用について
-
【C言語】全角文字の配列を、全...
-
Cプログラムについて
-
printf による16進表示について
-
#defineが使用するメモリ領域に...
-
Ç言語でファイルサイズを変更す...
-
C++で指定文字列のカウント方法...
-
処理系によって。
-
コマンドファイルから、ビット...
-
配列への文字列の格納について
-
構造体メンバの初期化
-
fread処理について
-
fgetsがうまくいきません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
#defineが使用するメモリ領域に...
-
C言語のプログラムで、途中で止...
-
printf による16進表示について
-
空白を含んだ文字列がうまく格...
-
プログラミングの授業の課題です
-
【C言語】全角文字の配列を、全...
-
構造体メンバの初期化
-
Cでファイルの行数をカウントす...
-
char型2つを結合し、short型に...
-
矢印キーを押下してコンソール...
-
C言語で複数列のデータを1列の...
-
終了条件Ctrl+zについて,結果表...
-
Ç言語でファイルサイズを変更す...
-
エラーについて質問です。
-
C言語でのCSVファイルの読み出...
-
C++で指定文字列のカウント方法...
-
VC++でSQLへSELECT文を送ったの...
-
fscanfの使い方
-
c言語で文書を読み込み、単語の...
おすすめ情報