【发布时间】:2016-02-20 19:17:29
【问题描述】:
我有一个愚蠢的错误,但设法找不到它。在第 17 行,我尝试读取两个整数和一个字符串,但是当我输入(或类似内容)时:
2 3 (
我一直被要求输入。当我输入(或类似)时:
2 3 F
阅读流畅。会不会是“(”一个特殊字符?
#include <iostream>
using namespace std;
int ocurs(string cad, string subcad) {
int con = -1;
size_t i = 0;
while(i != string::npos) {
i = cad.find(subcad, i);
con++;
}
return con;
}
int main() {
int n, m, con = 0;
string cad, subcad;
cin >> n >> m >> subcad;
//cout << subcad;
for(int i = 0; i < n / 2; i++)
cad.push_back('(');
for(int i = 0; i < n / 2; i++)
cad.push_back(')');
//cout << cad;
con += ocurs(cad, subcad);
cad.clear();
for(int i = 0; i < n; i++)
if(i % 2 == 0) cad.push_back('(');
else cad.push_back(')');
con += ocurs(cad, subcad);
cout << con;
return 0;
}
【问题讨论】:
-
除了第 17 行之外,我没有看到任何要求输入数据的内容,并且没有围绕它的循环。
-
听起来你需要运行一个调试器。