I am trying to write some code where I take each digit of a number, via an outisde function digitSep(), and place it into a vector, in this case vector<int> digits;.
Any idea why I cannot cout << digits[i] or cout << digits.at(i) in a for loop?
std::vector<int> digitSep(int d) {
vector<int> digits;
int right_digit; //declare rightmost digit
while (d > 0) {
right_digit = d % 10; //gives us rightmost digit (i.e. 107,623 would give us '3')
d = (d - right_digit) / 10; //chops out the rightmost digit, giving us a new number
digits.push_back(right_digit);
}
return digits; ///returns us a vector of digits
}
int main() {
//inputs
int n;
cin >> n;
vector<int> digitSep(n); //call the function here with user input n above
for (int i = 0; i < digitSep.size(); i++) {
cout << digits[i] << endl; ////This is the line that won't work for some reason
}
return 0;
}
This line:
doesn't call the function called
digitSep. You need to do:And then in the
forloop, you have to do:or simply: