1

ファイルの内容をスキャンしながら、ファイルの入力が有効かどうかを確認する方法があるかどうか疑問に思っていました。

たとえば、filename という名前のファイルをスキャンする場合、名前、性別、年齢、身長、体重の 5 つの要素を含む未定義の数のセットがファイルに含まれていると予想します。このプログラムのリンク リストを 1 つ作成します。

だから私は typedef Struct を作成します:

typedef struct nodebase{
    char name[20];
    char sex; //M for male and F for female
    int age;
    double height; // Height shall be rounded off to 2 decimal points
    double weight; // Weight shall be rounded off to 2 decimal points
    struct nodebase *next;
}listnode;

int main()
{
    int totalsets; //Counter for total numbers of "sets" within the file
    char filename[20];
    listnode *head;
    listnode *tail;
    listnode *current;
    FILE *flist;

    printf("Type the name of the file for the list: \n");
    scanf("%s",filename);

次に、ファイル内のすべての可能な「セット」をスキャンしながら、

flist = fopen(filename,"r");
while(!feof(flist))
{
    if(5 == fscanf(flist,"%s[^\n]%c%d%lf%lf",&current->name,&current->sex,&current->age,&current->height,&current->weight)
{
    totalsets++;
}

(ここに私の質問があります): ファイル入力の一部が間違っている場合、プログラムにユーザーに知らせるにはどうすればよいですか (ただし、プログラムはそれらの有効な「セット」をカウントします)?

性別の文字であるはずの整数を含むセットがファイルにある場合のように

もう 1 つの質問は、(そのような無効な入力を検出した後) プログラムがユーザーの編集を受け入れて、セットの無効な入力部分の編集を上書きできるかどうかです。

どうもありがとう!

※まだコーディングは全部終わっていません。ここで立ち往生しているので、先に進む前にこの部分を完了したかっただけです。※私の質問に対する回答はすでにあるかもしれませんが、率直に言って、私はそれらを理解していません...

WindowsでVS2012を使用しています。

4

1 に答える 1