-1

こんにちは友人私はC言語に不慣れです私は私のプログラムでエラーが発生しています(ターボcコンパイラで)

#include<stdio.h>
#include<conio.h>

void main()
{
    FILE *fopen().*p;//error call of nonfunction
    char name[10];

    p=fopen("rec.dat","r");
    printf("enter your name:");
    scanf("%s",name);
    fprintf("p,"my name is %s",name);
    fclose(p);
    getch();
}

誰かが私の問題を見て、いくつかの解決策を与えてくれたら嬉しいです。

4

2 に答える 2

4

投稿したコードは、コンパイルしたコードとは異なる可能性があります。言及しなかった構文エラーメッセージがいくつか表示されるはずです。不一致の引用符を探します。

あなたのライン:

FILE *fopen().*p;

おそらく次のように意図されていました:

FILE *fopen(),*p;

fopen()これにより、関数とFILE*オブジェクトの両方が宣言されますpfopenしかし、自分自身を宣言する必要はまったくありません。それ#include <stdio.h>が目的です。だからそれをに変更するだけです

FILE *p;

あなたがそれにいる間、に変更void main()して、正しいint main(void)とあなたに言った本を取り除いてください。void main()

そしてscanf("%s",name);、安全ではありません。スペースで区切られた文字のシーケンスを。に読み込みますname。問題は、あなたはscanfどれくらいの大きさかを知らなかったということnameです。20文字入力scanfすると、の末尾を超えて書き込みnameます。陽気さが続きます。

于 2013-02-09T03:07:06.450 に答える
1

エラー行は次のようになります。

FILE *p = fopen("rec.dat", "r");
// remove the subsequent call of fopen below

あるいは単に

FILE *p;
// Keep the fopen call below
于 2013-02-09T03:04:54.720 に答える