以下のプログラムを実行すると よくわからない値が返ってきます。
なぜでしょうか?教えてください。
#include <stdio.h>
void main ()
{
FILE *fp;
double a, b;
int count=0;
fp = fopen("test.xls", "r");
while(1)
{
fscanf(fp, "%lf %lf\n", &a, &b);
printf("%f, %f\n", a, b);
count++;
if(count==10)break;
}
fclose(fp);
}
test.xlsの中身は
1.0 2.0
3.0 4.0
5.0 6.0
:
:
:
:
です。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
読み込むファイルの拡張子がxlsということは、Excelのファイルですか?
Excelのファイルはセルに入力した文字列より前に、いろんな文字が入っています。
C言語でファイルを読むとそれらの文字列を最初に読んでしまうので、意味の分からない文字列が取れてしまいます。
メモ帳のファイルを開くからC言語で読み込もうとしているファイルを開いてみると、きっと、C言語で読み込まれた文字列と同じ文字が並んでいますよ。
C言語はOSを作るための言語ですので、何でもできてしまう代わりに、すべてを網羅して、処理をいれないとなりません。
例えば、Excelファイルの意味の分からない文字列は、おそらくですが、同じファイルなら、同じ文字列なはずです。
ですので、その文字数をカウントして、それだけ飛び越えて、文字を読むようにすると意図したことができると思います。
No.3
- 回答日時:
既に回答ついていますが…
普通は".xls"の拡張子がついているファイルはfopen("ほにゃらら.xls", "r")のテキストモードでは読めません。
# まぁ、ふつ~のテキストファイルに拡張子xlsつけることは可能ではありますが…混乱したい人以外はそんなことやらない。
Excelでcsvで出力したんでしたらテキストモードでオープンできるでしょう。
# カンマ区切りにしたならfscanf()の書き方も変更が必要です。
ってことで、まずは指定したファイルをメモ帳なりで開いてみましょう。
あと…fopen()に失敗していないかも確認しましょう。
# 失敗していれば途中で吹っ飛んだかも知れませんけどね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル内のデータを1行削除...
-
改行までの一文字ずつのファイ...
-
EOF判定されない
-
【VB.Net】バイト型配列に読み...
-
fopen(書き込みモード)でファイ...
-
バイナリファイルをテキストフ...
-
VBSで指定行に挿入
-
0バイトファイルの作成
-
VS2010 MFC CStdioFileについて
-
C言語 CSVファイルの読み込み
-
続・EOF判定されない
-
C言語初心者の質問失礼します。
-
OLE又はDDEを使うVISUAL BESIC...
-
バッファとは何ですか
-
Access クエリ実行が急に非常に...
-
JavaScriptでコマンドプ...
-
フルパスから最後のディレクト...
-
ACCESSのEXEを作るのは可能...
-
FTPでputすると空ファイルが出...
-
C#のクラスライブラリのIntelli...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バイナリファイルをテキストフ...
-
VBSで指定行に挿入
-
ファイル内のデータを1行削除...
-
テキストファイルの行数を取得...
-
fgetsで2行目から文字化け
-
【VB.Net】バイト型配列に読み...
-
改行までの一文字ずつのファイ...
-
ファイルサイズ指定し、ファイ...
-
続・EOF判定されない
-
fopenで開いたファイルのサイズ...
-
c言語 2つのファイルを行ご...
-
巨大なテキストファイル(可変...
-
freadとfwrite
-
0バイトファイルの作成
-
C言語 バイナリファイルの読み...
-
C言語での改行コードの扱いにつ...
-
テキストファイルの文字列の削除
-
EOF判定されない
-
C/C++ ファイル入出力操作 (長...
-
winsock recvでの文字化け
おすすめ情報