[英]'not declared in this scope' when using strlen()
我正在尝试编译这段代码,但无论出于何种原因它都行不通。 有人能帮我吗? 我想知道如何正确使用 strlen() :
#include<iostream>
using namespace std;
int main()
{
char buffer[80];
cout << "Enter a string:";
cin >> buffer;
cout << strlen(buffer);
return 0;
}
我试过使用 cin.getline(buffer, 80); 但我遇到了同样的编译错误问题。
我的编译器说错误是这样的
错误:strlen 未在此范围内声明
您忘记包含<cstring>
或<string.h>
。
cstring
将在std
命名空间中为您提供strlen
,而string.h
会将其保留在全局命名空间中。
您需要为strlen
包含cstring
标头:
#include <cstring>
您也可以包含string.h
,这会将strlen
放在全局命名空间中,而不是std
命名空间中。 我认为使用cstring
和使用using namespace std
删除是更好的做法。
您可以包含<cstring>
,然后您将不会收到任何错误。
代码
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char buffer[80];
cout << "Enter a string:";
cin >> buffer;
cout << strlen(buffer);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.