2013-07-13 36 views
7

Tôi đang cố gắng biên dịch đoạn mã này nhưng vì bất kỳ lý do nào nó không hoạt động. Ai đó có thể giúp tôi? Tôi muốn biết cách sử dụng strlen() đúng cách:'không được khai báo trong phạm vi này' khi sử dụng strlen()

#include<iostream> 
using namespace std; 

int main() 
{ 
    char buffer[80]; 

    cout << "Enter a string:"; 
    cin >> buffer; 
    cout << strlen(buffer); 

    return 0; 

} 

Tôi đã thử sử dụng cin.getline (bộ đệm, 80); nhưng tôi nhận được cùng một lỗi biên dịch.

trình biên dịch của tôi nói rằng lỗi là này

error: strlen was not declared in this scope

+0

Lỗi nào? – Borgleader

+0

trình biên dịch của tôi nói điều này: lỗi: âstrlenâ đã không được khai báo trong phạm vi này – Person

+0

có gì sai với mã ?? – dayitv89

Trả lời

24

Bạn quên bao gồm <cstring> hoặc <string.h>.

cstring sẽ cung cấp cho bạn strlen trong không gian tên std, trong khi string.h sẽ giữ nó trong không gian tên chung.

+1

ok cảm ơn người tốt bụng! – Person

3

Bạn cần phải bao gồm cstring tiêu đề cho strlen:

#include <cstring> 

bạn cách khác có thể bao gồm string.h và đó sẽ đưa strlen trong không gian tên toàn cầu như trái ngược đến không gian tên std. Tôi nghĩ thực hành tốt hơn là sử dụng cstring và thả bằng cách sử dụng using namespace std.

Các vấn đề liên quan