c++ string数组的问题
intmain(){strings[10];stringtemp;inti=0;while(cin>>s[i++])while(i>=0){cout<<s[i--]<<e...
int main()
{
string s[10];
string temp;
int i=0;
while(cin>>s[i++])
while(i>=0)
{
cout<<s[i--]<<endl;
}
return 0;
}
蒙圈了,这个代码为什么不打印我的输入呢,比如在屏幕打印“hello wolrd” 展开
{
string s[10];
string temp;
int i=0;
while(cin>>s[i++])
while(i>=0)
{
cout<<s[i--]<<endl;
}
return 0;
}
蒙圈了,这个代码为什么不打印我的输入呢,比如在屏幕打印“hello wolrd” 展开
1个回答
展开全部
首先,"hello world"中含有空格字符,string字符的读取默认是不包含空格的。要读取一行的字符串的话,需要用到函数getline.
其次,你的while(cin>>s[i++]) 是对输入的判断,而while(i>=0)是对其的嵌套,该情况下i的值在0和1之间无限循环,这种情况下无论做任何输入,输出的都是你第一个输入的字符串。
以下是我对代码的改进:
#include <iostream>
#include <string>
using namespace std;
int main(){
string s[10];
for(int i=1;getline(cin,s[i]);){
cout<<s[i]<<endl;
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询