编译代码时出错

Error when compiling code

本文关键字:出错 代码 编译      更新时间:2023-10-16

我得到这个错误字符串未声明在编译这个代码。

#include <stdio.h>
#include <stdlib.h>

int main()
{
string names;
printf("What is your name?n");
scanf("%s", &names);
printf("Your name is %s", names);
return 0;
}
谁能告诉我为什么?非常感谢

你应该包括字符串头:

#include <string>

,使用时不要忘记命名空间std:

std::string names;

此外,在编写代码时不要把C和c++混在一起。试着用std::cout而不是printf, cin/getline而不是scanf

你需要添加

#include <string>

从c++标准库中引用字符串,并声明您正在使用std与

using namespace std;

如果您正在编写c++,那么标准字符串类称为std::string,并且位于头文件<string>中。但是你通常不会想要使用printfscanf,你会使用c++ I/O:

#include <iostream>
#include <string>
int main()
{
    using namespace std;
    string names;
    cout << "What is your name?" << endl;
    getline(cin, names);
    cout << "Your name is " << names << endl;
}

如果(尽管有疑问标签)你正在写C,那么就没有称为string的类型。字符串通常由字符数组表示:

char names[SOME_LARGE_NUMBER];

但是要注意,除非您非常小心,否则scanf可能会溢出缓冲区并导致各种类型的运行时错误

因为std::string是在头字符串中定义的,而您没有包含头字符串,并且因为它的全名和专有名称是std::string,而不仅仅是字符串。