arr
in my_funct()
и arr
in if-else - это два разных массива. Вы объявляете локальную версию в if-else , которая после каждой итерации l oop уничтожается. Вы также объявили его как массив нулевой длины, то есть он не может содержать никаких элементов. В вашем случае вы хотите std::vector
(вы даже включили соответствующий заголовок).
Затем вы можете отказаться от переменной count
и использовать vec.size()
(я переименовал arr
в vec
) вместо этого.
#include <iostream>
#include <string>
#include <vector>
using namespace std;
std::vector<std::string> vec;
void my_funct()
{
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i];
}
}
int main()
{
std::string name;
while (true) {
std::cout << "Enter your name: \n";
getline(std::cin, name);
if (name == "quit") {
my_funct();
break;
}
else {
vec.push_bash(name);
}
}
}