2017-10-20 94 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樹項目。 我不明白爲什麼我有這個錯誤:「沒有足夠的參數通過格式」,我錯過了什麼?使用visual studio 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);