我是 C++ 的新手,现在我正在从名为《C++》的书中学习加速C++。我完成了第三章(向量),我来到了这个练习:
“编写一个程序来计算每个不同单词在其输入中出现的次数。”
经过一番思考后,我开始着手做这件事。我想测试该程序,但 std::cout 不起作用。我放cout << "test";
在我的代码中的几个地方查看问题出在哪里,结论是它在第一个 for 循环内不起作用。不建议我使用地图来解决问题,因为我正在研究向量。这些变量不是英文的,所以我会翻译一些让你知道发生了什么:
recenica - 句子; rijec - 一个词; vel_vektora - 向量的大小; duz_recenice - 句子的长度; br_ponavljanja - 单词在句子中出现的次数;
#include <vector>
#include <iostream>
#include <string>
using std::string; using std::vector;
using std::cin; using std::cout;
using std::endl;
int main()
{
string rijec;
vector<string> recenica;
while (cin >> rijec) recenica.push_back(rijec);
cout << endl;
typedef vector<string>::size_type vel_vektora;
vel_vektora duz_recenice = recenica.size();
cout << "test0, ";
for (int i = 0; i < duz_recenice - 1; ++i)
{
cout << "test, !";
int br_ponavljanja = 1;
for (int j = i + 1; j < duz_recenice; ++j)
{
cout << "test2, ";
if (recenica[i] == recenica[j])
{
cout << "test3, ";
++br_ponavljanja;
recenica.erase(recenica.begin() + j);
}
cout << "test4, ";
}
cout << recenica[i] << ": " << br_ponavljanja << endl;
}
cout << "test5, ";
getchar();
return 0;
}
有什么问题吗std::cout
?
Add << flush
刷新输出缓冲区(每个地方)。
Or use << endl
,这两者都添加换行符和刷新。
代码存在问题,尤其是对于空输入,但这就是您要了解的内容,所以我将让您自行解决! :-)
干杯,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)