У меня есть код, в котором я ввожу число N, а потом просто ввожу в цикле по N строки, состоящие из пробелов, цифр, скобок и дефисов. Потом я хочу ввести число M, и хочу ввести в цикле по М таким же способом строки. Но проблема в том, что когда я ввожу это все дело, у меня программа не работает нужным образом. Абсолютно не понимаю в чем проблема. Не могли бы вы объяснить, просто после ввода строк результат, который я ожидаю, не выводится на экран.
using namespace std;
int main() {
int N;
cin >> N;
vector<string> buffer;
for(int i = 0; i < N; ++i){
string temp;
getline(cin, temp);
int n = temp.size();
string temp2 = "";
for(int j = 0; j < n; ++j){
if(temp[j] == '-' || temp[j] == ' ' || temp[j] == '+' || temp[j] == '(' || temp[j] == ')')
continue;
temp2 += temp[j];
}
buffer.push_back(temp2);
}
vector<string> ret(buffer.size());
int M;
cin >> M;
for(int i = 0; i < M; ++i) {
string temp;
getline(cin, temp);
int n = temp.size();
string current = "";
for(int j = 0; j < n; ++j){
if(temp[j] == '+' || temp[j] == '(' || temp[j] == ')' || temp[j] == ' '){
continue;
}
if(!(temp[j] >= '0' && temp[j] <= '9') && temp[j] != 'X'){
break;
}
current += temp[j];
}
for(int k = 0; k < buffer.size(); ++k){
if(buffer[k].size() != current.size())
continue;
int len = current.size();
int flag = 0;
for(int r = 0; r < len; ++r){
if(current[r] == buffer[k][r] || current[r] == 'X')
flag++;
}
if(flag == len){
ret[k] = temp;
}
}
}
for(int i = 0; i < ret.size(); ++i){
cout << ret[i] << endl;
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
В C можно рендерить svg в cairo с помощю librsvg, чем рендерить svg в gtkmm? cairomm? или как засунуть в cairomm GdkPixbuf*?
Занимаюсь разработкой собственной мини-утилиты для работы с MySQLКак я могу проверить подключение к указанному хосту (по логину и паролю) без...