我是C语言的新手,现在我正在从名为Accelerated C的书中学习.我完成了第三章(向量),然后开始了本练习:
“编写一个程序,计算每个单词在其输入中出现的次数.”
经过一番思考,我开始研究它.我想测试该程序,但std :: cout无法正常工作.我把cout<< “测试”;在代码中的几个地方查看问题出在哪里,结论是它在第一个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有什么问题?
解决方法:
添加<< flush刷新输出缓冲区(每个位置). 或使用<< endl,既添加换行符又刷新. 代码存在问题,尤其是对于空输入,但这是您要学习的内容,因此,我将指导您!
标签:c,for-loop,cout 来源: https://codeday.me/bug/20191011/1890484.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。