0

たとえば、このテーブルをメモ帳に保存しました。

x's 1 2 3 4 5   
y's 2 4 5 6 7

使用fscanfおよびファイル処理。たとえば、array1 と array2 を宣言した場合、x と y の値を格納するにはどうすればよいですか。(x を array1 に、y を array2 に格納)

4

2 に答える 2

2

これはうまくいくかもしれません.txtファイルに余分なスペース文字を入れないでください

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

void main ()
{
    int *x;
    int *y;
    int d,sizey;
    char ch;
    int sizex = 1;
    int size = 0;
    int i = 0;
    FILE * pFile;

    pFile = fopen ("text.txt","r");
    while (fscanf (pFile, "%d", &d) != EOF)
    {
        size++;
    }

    rewind (pFile);
    fscanf (pFile, "%c", &ch);
    while (ch != '\n')
    {
        if (ch == ' ')
        sizex++;
        fscanf (pFile, "%c", &ch);
    }

    sizey = size - sizex;
    rewind (pFile);

    x = (int*) malloc(sizex*sizeof(int));
    y = (int*) malloc(sizey*sizeof(int));

    for(i = 0;i<sizex;i++)
    {
    fscanf (pFile, "%d", &d);
    x[i]=d;
    }

    for(i = 0;i<sizey;i++)
    {
    fscanf (pFile, "%d", &d);
    y[i]=d;
    }
}
于 2013-08-17T19:13:15.780 に答える