0

の助けを借りて、ファイルから行列を読み込んでいますfscanf()。を使用するfscanf()と、ファイルからマトリックスを抽出できます。しかし、行列の列サイズを見つけることができません。

入力ファイル:
12 3 -4
6 5 7

int main()
{
    char arr[10],len;
    int count=0;

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

    while(fscanf(input,"%s",arr) != EOF)
    {   
        //fill into the output matrix. 
    }   
}

しかし、の助けを借りて列のサイズを調べる方法はfscanf?

4

2 に答える 2

0

あなたの要件に従って、getlineが行う必要があります。探している strlen から行の長さを取得できます。各列要素がスペースまたは区切り文字で区切られている場合、行を区切り文字で分割して個々の要素を取得するだけです。ご不明な点がございましたらご返信ください。

于 2012-08-21T07:42:55.220 に答える
0

関数 getColumn が読み取ろうとしても、初めて。

int getColumn(FILE* fp){
    char buff[BUFSIZ]={0};
    int count=0;
    char *p;
    if(NULL==fgets(buff, BUFSIZ, fp))
        return -1;
    rewind(fp);
    for(p=buff;NULL!=strtok(p, " \t\n");p=NULL)
        ++count;
    return count;
}

...
FILE *input= fopen("input.txt", "r");
int column = getColumn(input);//3
于 2012-08-21T10:43:52.630 に答える