求助,十几行代码输出不对。
c++吧
全部回复
仅看楼主
level 6
逝切月 楼主
困惑了好几天
2017年08月17日 15点08分 1
level 6
逝切月 楼主
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<string> words;
words.push_back("GUESS");
char guess;
cin >> guess;
if (words[0].find(guess) != string::npos)
{
cout << guess;
}
return 0;
}
输入了"GAESS",不知道find函数是怎么找到的,只输出了字符串“G”而不是“GAESS”,很困惑。
2017年08月17日 15点08分 2
level 9
问题就出现了,你没包含string 的头文件你怎么用string
2017年08月17日 15点08分 3
不知道,编译通过了。
2017年08月17日 16点08分
@逝切月 建议加头文件string 然后用string去接受guess
2017年08月17日 16点08分
@讠朱仙 加上string头文件,将vector<string> words; words.push_back("GUESS");改为string words[1] = {"GUESS"};同样的输入输出还是没有变化。
2017年08月17日 16点08分
level 9
char 是字符 只接受一个字符自然是第一个
2017年08月17日 15点08分 4
level 6
逝切月 楼主
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a[1] = { "qenwertyui" };
for (int i = 0; i < a[0].length(); i++)
{
char b;
cin >> b;
cout << “\n”<<b;
}
reurn 0;
}
b明明被for循环好多回,可是b可以输入一长串字符同时循环输出,却不必每for循环手动输入一次,这是怎么做到的。
2017年08月17日 16点08分 5
因为一次输入多个字符时剩下的字符会被直接当做下次cin的值,这样理解应该没错吧 [滑稽]
2017年08月17日 23点08分
@麓fantaisie 可能是吧,要是能看懂源代码就好了。
2017年08月18日 07点08分
level 1
不是我说 贴吧里面的拿来主义 自己打断点 一个一个 参数 看过去不就完了?
2017年08月18日 08点08分 6
上一楼的代码打断点也无法理解,可是又看不懂c++的源码,b的值会变,可是原理就不知道了。
2017年08月18日 08点08分
level 1
我在VS 上运行试试看
2017年08月18日 10点08分 7
level 1
兄弟呀 我才看出来 FOR 循环那个 a 理解成数组啊 每个元素循环取到b 里面 没毛病啊
2017年08月18日 10点08分 8
cin>>b 输入一堆字符串后每次循环不必再输入
2017年08月18日 10点08分
level 11
// 调试一下这个程序 [滑稽]
#include <iostream>
using namespace std;
int main()
{
char c;
cout << "输入 E 退出。" << endl;
do
{
cout << endl;
cin >> c;
cout << c << endl;
} while (c != 'E');
return 0;
}
2017年08月18日 12点08分 9
恩,一样的结果。
2017年08月18日 12点08分
level 10
guess只是一个char,你把它改成string试试
2017年08月18日 15点08分 10
1