【发布时间】:2021-03-23 09:16:34
【问题描述】:
我对 C 非常陌生,在处理书中的示例时,我不断收到“C++ 类型 * 的参数与 ** 类型的参数不兼容”错误。我正在使用 Visual Studio 2019 C++。这是我使用 fopen_s 时出现错误的地方:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *inFile;
inFile = fopen_s("prices.dot","r"); /*Here is the line with an error*/
if (inFile == NULL)
{
printf("\nThis file does not existL");
printf("\nPlease make sure that this file currently exist");
exit(1);
}
printf("\nThe file has been succfully open for reading.");
return(0);
}
当我使用“fopen”时,我收到一个警告,告诉我使用 fopen_s,而当我使用 fopen_s 时,我收到另一个错误。我想知道我是否可以在这个问题上得到任何帮助。谢谢!
【问题讨论】:
-
您使用的是 C 还是 C++?这段代码看起来都像 C。
-
fopen_s的签名与fopen不同。 -
fopen_s的参数与fopen不同。见docs.microsoft.com/en-us/cpp/c-runtime-library/reference/… -
我建议你关闭告诉你使用
_s版本函数的警告。这些都是微软特有的,所以你的代码不再是可移植的。 -
auto res = fopen_s(&inFile, "prices.dot","r").
标签: c++ c visual-c++