2017-10-20 15 views
0
char option; 
FILE *fp; 
errno_t err; 
err = fopen_s(&fp, "../AVL Trees/input.txt", "r"); 

while (!feof(fp)) 
{ 
    fscanf_s(fp, "%c", &option); //error is here 
    ... 
} 

これはAVL Treesプロジェクト用です。 私はなぜこのエラーが発生したのか理解できません: "十分な引数がフォーマットに渡されていません"、何か不足しましたか?ビジュアルスタジオ2017を使用中にエラーが発生しました:fscanf_s

編集:

1>e:\visual studio projects\avl trees\avl trees\main.cpp(27): warning C4473: 'fscanf_s' : not enough arguments passed for format string 
1>e:\visual studio projects\avl trees\avl trees\main.cpp(27): note: placeholders and their parameters expect 2 variadic arguments, but 1 were provided 
1>e:\visual studio projects\avl trees\avl trees\main.cpp(27): note: the missing variadic argument 2 is required by format string '%c' 
1>e:\visual studio projects\avl trees\avl trees\main.cpp(27): note: this argument is used as a buffer size 
+0

のような呼び出しを使用する必要があります変数オプションが宣言されましたか? –

+0

私はそれほど役に立たないと思うが、ここでそれは(編集された) – Gundal

+0

現在の問題とは関係ない他の便利な読み方(しかし、次のものに役立つかもしれない):[なぜwhile(!feof(file)いつも間違っていますか?](https://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong) – user4581301

答えて

0

C標準(K.3.5.3.2 fscanf_s機能)から

4 The fscanf_s function is equivalent to fscanf except that the c, s, and [ conversion specifiers apply to a pair of arguments (unless assignment suppression is indicated by a *). The first of these arguments is the same as for fscanf. That argument is immediately followed in the argument list by the second argument, which has type rsize_t and gives the number of elements in the array pointed to by the first argument of the pair. If the first argument points to a scalar object, it is considered to be an array of one element.

でどこだから、この

fscanf_s(fp, "%c", &option, 1); 
関連する問題