C++ gets()导致编译失败,使用'';使用未声明的标识符';获取'&引用;错误
我正在努力解决这个问题。我将字符作为输入并使用C++ gets()导致编译失败,使用'';使用未声明的标识符';获取'&引用;错误,c++,compiler-errors,gets,C++,Compiler Errors,Gets,我正在努力解决这个问题。我将字符作为输入并使用get()。但函数显示了上述错误 我不知道为什么这个函数有问题。请帮我找出毛病。我是初学者 如前所述,错误消息为: 使用未声明的标识符“get” 我的C++代码: #include <bits/stdc++.h> using namespace std; int main() { char line[1000]; bool open = true; while (gets(line)) //***in thi
get()
。但函数显示了上述错误
我不知道为什么这个函数有问题。请帮我找出毛病。我是初学者
如前所述,错误消息为:
使用未声明的标识符“get”
<>我的C++代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
char line[1000];
bool open = true;
while (gets(line)) //***in this line gets() is showing error***
{
int len = strlen(line);
for (int i = 0; i < len; i++)
{
if (line[i] == '"')
{
if (open)
{
printf("``");
}
else
{
printf("''");
}
open = !open;
}
else
{
printf("%c", line[i]);
}
}
printf("\n");
}
return 0;
}
#包括
使用名称空间std;
int main()
{
字符行[1000];
bool open=true;
而此行中的(gets(line))/***gets()显示错误***
{
int len=strlen(直线);
对于(int i=0;i
std::get
在C++11中被弃用,并从C++14中删除,尽管有些编译器仍然提供它,但看起来它不是您的情况,这是一件好事
您应该使用类似,注意,为此,您需要将行
参数设置为std::string
string line;
//...
while (getline(cin, line)){
//...
}
或者,如果您确实需要char
数组,则可以使用:
旁注:
请考虑并按照链接查看详细信息。
std::get
在C++11中被弃用,并从C++14中删除,尽管有些编译器仍然提供了它,但看起来它不是您的情况,这是一件好事
您应该使用类似,注意,为此,您需要将行
参数设置为std::string
string line;
//...
while (getline(cin, line)){
//...
}
或者,如果您确实需要char
数组,则可以使用:
旁注:
请考虑并按照链接查看详细信息。get()已被弃用。请阅读相关内容
但是让我们先来看看你为什么会出错的根本原因。
一个
未声明的标识符“get”
错误是因为编译器找不到正在使用的函数的声明。在本例中,gets()是在stdio.h中定义的
我还看到,您正在按照建议使用,为此,您需要包含字符串
标题
请看一下我提到的两个链接,以了解正确的用法。gets()如前所述已被弃用。请阅读相关内容
但是让我们先来看看你为什么会出错的根本原因。
一个
未声明的标识符“get”
错误是因为编译器找不到正在使用的函数的声明。在本例中,gets()是在stdio.h中定义的
我还看到,您正在按照建议使用,为此,您需要包含字符串
标题
看看我提到的2个链接,了解正确的用法。<……………………我使用C++ 14。这就是为什么它显示错误。@ SatyajitRoy,这并不意味着你应该回到C++ 11。这意味着你应该停止使用<代码>获取< /代码>,也许开始真正学习C++。哦……我使用C++ 14。这就是为什么它显示错误。@ SatyajitRoy。这并不意味着你应该回到C++ 11。这意味着你应该停止使用<代码>获取< /C> >,也许开始真正学习C++。在你所显示的代码中存在太多的问题。让我们从<代码> <代码>开始。然后<代码>获取< /代码>,这是永远不应该使用的。那么,只有代码中的两行是特定的问题。对于C++,剩下的可以是C.谁,或者在哪里教过你“C++”?除此之外,欢迎使用堆栈溢出。请阅读,使用SO,阅读,以及最后。请。如果你有构建错误,然后复制粘贴完整和完整的构建输出(作为文本!)我通常不使用
bits/stdc++.h>
但是我在这个文件中使用头文件,因为gets()显示错误,我尝试了很多头文件,但不起作用。这就是为什么我在代码中使用了<代码> >代码>代码中出现了很多问题。让我们从<代码> <代码>开始……然后<代码>获得不应该使用的代码。这就是代码中只有两行特定于C++的问题。t可以是普通的C。谁、在哪里或什么教了你“C++”?除此之外,欢迎来到堆栈溢出。请阅读,接受SO,阅读,以及。最后请。如果你有构建错误,那么复制粘贴完整的构建输出(作为文本!)我通常不使用bits/stdc++.h>
,但我在这个文件中使用头文件,因为get()
显示错误,我尝试了很多头文件,但都不起作用。这就是我在这个代码中使用
的原因。