嘿,基本上,我写了一个简单的函数,问你有多少汽车,在数组中输入数量,然后把车的名字赋给数组。还做了一个for循环来显示它,它说它没有在作用域中声明,我只是不知道为什么它会这样说。有人能帮帮我吗?
error: project2.cpp:13:16: error: 'cars' was not declared in this scope
13 | cin >> cars[i];
| ^~~~
project2.cpp:17:17: error: 'cars' was not declared in this scope
17 | cout << cars[i];
#include <iostream>
#include <string>
void display(){
int amount;
cout << "Car amount: ";
cin >> amount;
string cars[amount];
for(int i=0; i<amount; i++){
cout << "Enter " << i << " car name:";
cin >> cars[i];
'\n';
}
for(int i=0; i<amount; i++){
cout << cars[i];
}
}
using namespace std;
int main()
{
display();
return 0;
}
2条答案
按热度按时间zpqajqem1#
问题是using指令放在main之前
其中不使用来自命名空间
std
的名称。另一方面,您正在使用位于using指令之前的函数display
中的标准命名空间std
中的名称。因此,找不到例如
cout
、cin
和string
的名称。至少你应该把using指令放在函数定义之前。请注意,可变长度数组作为函数中使用的数组
不是标准的C++特性。
使用容器
std::vector<std::string>
,如要使用容器,您需要包含header
<vector>
。还有这个表达式语句
没有效果。把它拿走。
相反,你可以写例如
一般来说,在全局命名空间中使用using指令是一个坏主意。最好使用限定名,例如
等等。
6ioyuze22#