+ 2
Why do I keep receiving error messages?
My code works and outputs properly in my testing, but I also get an error message and I'm not sure why. #include <iostream> #include <string> using namespace std; int main() { cout<<"Please write a sentence"<<endl; string base; cin>>base; for (int i=0; i<base.length();i++) {cout<<base[i]<<endl;} }
2 ответов
+ 4
The code shouldn't generate any error message till the time input is given properly.
If you mean the warning generated by the compiler then that is due to the fact that your variable "i" is of type signed integer and "base.length()" returns an unsigned type, so you can't always compare the two as one can't be implicitly converted to other.
A simple fix is to either cast the value returned by "base.length ()" to int or more preferably, convert "i" to an unsigned type.
+ 3
// std::size_t can store the maximum size of a theoretically possible object of any type (including array)
for (size_t i=0; i<base.length(); i++) cout<<base[i]<<endl;