获取“U s错误C2660”;函数不接受1个参数";-非常困惑
因此,我已经尽可能彻底地研究了这个问题,但是我无法找到一个解决方案(对于编程来说是非常新的) 基本上,我正在尝试读取一个.txt文件,但是当我要求用户使用get_s函数输入文件名时,我得到了错误C2660—“错误C2660:'get_s':函数不接受1个参数” 下面是我的代码示例:获取“U s错误C2660”;函数不接受1个参数";-非常困惑,c,visual-studio,C,Visual Studio,因此,我已经尽可能彻底地研究了这个问题,但是我无法找到一个解决方案(对于编程来说是非常新的) 基本上,我正在尝试读取一个.txt文件,但是当我要求用户使用get_s函数输入文件名时,我得到了错误C2660—“错误C2660:'get_s':函数不接受1个参数” 下面是我的代码示例: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
FILE *fileread1;
char file1[10];
char read_char1;
char ch;
{
printf("Enter a filename : ");
gets_s("file1.txt");
fileread1 = fopen("file1.txt", "r");
\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
#包括
void main()
{
文件*fileread1;
char file1[10];
char read_char1;
char ch;
{
printf(“输入文件名:”);
获取_s(“file1.txt”);
fileread1=fopen(“file1.txt”,“r”);
感谢大家的关注,我理解这个问题很可能是显而易见的,但是我对编程还很陌生。非常感谢!
gets\u s
接受两个参数,而不是一个。这里有一个参考:
您不应该使用此函数。相反,您应该使用fgets
。我的理解是gets
和gets\s
都不能防止缓冲区溢出
要像使用gets
一样使用fgets,只需将stdin
作为输入文件指针传递即可。下面是一个使用示例:
char buffer[100];
fgets(buffer, 100, stdin);
下面是一个很好的fgets参考资料,详细介绍如下:
校正
经过一些研究,
gets\u s
似乎是防止缓冲区溢出的gets
版本,但是我在我的OSX机器或FreeBSD服务器上的stdio.h
中找不到它。它似乎不是标准的,所以我建议使用fgets
gets\u\code>接受两个参数,not one。这里有一个参考:
您不应该使用此函数。相反,您应该使用fgets
。我的理解是gets
和gets\s
都不能防止缓冲区溢出
要像使用gets
一样使用fgets,只需将stdin
作为输入文件指针传递即可。下面是一个使用示例:
char buffer[100];
fgets(buffer, 100, stdin);
下面是一个很好的fgets参考资料,详细介绍如下:
校正
经过一些研究,gets\u s
似乎是防止缓冲区溢出的gets
版本,但是我在我的OSX机器或FreeBSD服务器上的stdio.h
中找不到它。它似乎不是标准的,所以我建议使用fgets