2011-07-05 8 views
0

私は数字のついたテキストファイルを持っています:各行に2つの数字がスペースで区切られています。数字の各ペアは、(x、y)座標を表します。私はそれが私が知っている言語だから、Cでこれを記述しようとしていますが、私は、Visual Studioで働いています2010年、次のように私が持っているコードは次のとおりです。(C/Visual Studioを使用して)テキストファイルから倍精度浮動小数点数を読み取る

#include "stdafx.h" 
#include <stdio.h> 
#include <stdlib.h> 

#define MAXPOINTS 10 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    double points [MAXPOINTS]; 

    int i; 
    for (i = 0; i < MAXPOINTS; i++) { 
     points[i] = 0.0; 
    } 

    FILE* pFile; 
    pFile = fopen ("points.txt","r"); 

    if (pFile == NULL) 
    { 
     printf("Could not open file\n"); 
     return 0; 
    } 

    rewind (pFile); 

    i = 0; 
    while (fscanf(pFile, "%f %f", &points[i], &points[i + 1]) == 2) { 
     printf("blah\n"); 
     i = i + 2; 
    } 

    for (i = 0; i < MAXPOINTS; i++) { 
     printf("[%d] = %f\n", i, points[i]); 
    } 

    fclose (pFile); 
    return 0; 
} 

出力がされています

blah 
blah 
blah 
[0] = 0.000000 
[1] = 0.000000 
[2] = 0.000000 
[3] = 0.000000 
[4] = 0.000000 
[5] = 0.000000 
[6] = 0.000000 
[7] = 0.000000 
[8] = 0.000000 
[9] = 0.000000 
番号は、配列に読み込まれていない理由を私は理解することはできません

100 200 
300 400 
500 500 

:points.txtは3行があり

アイデア?

答えて

2

%f形式では、ポインタが浮動する必要があり、ポインタをdoubleにする必要があります。

関連する問題