Пример #1
0
int main(int argc, char* argv[])
{{
/*	if (argc != 2) {
		cerr << "Uso: acm archivo_entrada";
		return -1;
	}
	// abrir el archivo de entrada
	ifstream is(argv[1], ios::in|ios::nocreate);
*/	ifstream is("input.txt");
	if (!is) {
		cerr << "No se puede abrir el archivo\n";
		return -1;
	}

	// abrir el archivo de salida
	ofstream os("salida.txt");
	if (!os) {
		cerr << "No se puede abrir el archivo\n";
		return -1;
	}

	CString linea;
	char *p_linea = linea.GetBuffer(MAX_LEN);
	
	// recorrer el archivo de entrada
	is.getline(p_linea, MAX_LEN);		// leer la linea
	while (!is.eof() && (p_linea[0] != FIN_INPUT)) {
		linea.ReleaseBuffer();
		CAdn adn(linea);
		linea = adn.Proteina();
		p_linea = linea.GetBuffer(MAX_LEN);
		os.write(p_linea, strlen(p_linea));
		os.put('\n');
		is.getline(p_linea, MAX_LEN);		// leer la linea
	}
	linea.ReleaseBuffer();
	os.close();
	is.close();
}
	// verificar si hay lagunas de memoria (hay lagunas por el simple hecho de declarar un cstring)
	if (_CrtDumpMemoryLeaks()) {
		cerr << "Hay lagunas de memoria\n";
		_getch();
	} else {
		cerr << "OK: No hay lagunas de memoria\n";
		_getch();
	}

	return 0;
}
Пример #2
0
 app * mk_magic_sets::adorn_literal(app * lit, const var_idx_set & bound_vars) {
     SASSERT(!m_extentional.contains(lit->get_decl()));
     func_decl * old_pred = lit->get_decl();
     SASSERT(m.is_bool(old_pred->get_range()));
     adornment_desc adn(old_pred);
     adn.m_adornment.populate(lit, bound_vars);
     adornment_map::entry * e = m_adorned_preds.insert_if_not_there2(adn, nullptr);
     func_decl * new_pred = e->get_data().m_value;
     if (new_pred==nullptr) {
         std::string suffix = "ad_"+adn.m_adornment.to_string();
         new_pred = m_context.mk_fresh_head_predicate(
             old_pred->get_name(), symbol(suffix.c_str()), 
             old_pred->get_arity(), old_pred->get_domain(), old_pred);
         m_pinned.push_back(new_pred);
         e->get_data().m_value = new_pred;
         m_todo.push_back(adn);
         m_adornments.insert(new_pred, adn.m_adornment);
     }
     app * res = m.mk_app(new_pred, lit->get_args());
     m_pinned.push_back(res);
     return res;
 }