int main(void) { char str[] = "AAA"; while(1) { gets(str); printf("%d\n",col_val(str,strlen(str))); } return 0; }
// ========================================================================= CRef<CSeq_table> CWiggleReader::xMakeTable(void) // ========================================================================= { CRef<CSeq_table> table(new CSeq_table); table->SetFeat_type(0); CRef<CSeq_id> chrom_id = xMakeChromId(); CRef<CSeq_loc> table_loc(new CSeq_loc); { // Seq-table location CRef<CSeqTable_column> col_id(new CSeqTable_column); table->SetColumns().push_back(col_id); col_id->SetHeader().SetField_name("Seq-table location"); col_id->SetDefault().SetLoc(*table_loc); } { // Seq-id CRef<CSeqTable_column> col_id(new CSeqTable_column); table->SetColumns().push_back(col_id); col_id->SetHeader().SetField_id(CSeqTable_column_info::eField_id_location_id); col_id->SetDefault().SetId(*chrom_id); } // position CRef<CSeqTable_column> col_pos(new CSeqTable_column); table->SetColumns().push_back(col_pos); col_pos->SetHeader().SetField_id(CSeqTable_column_info::eField_id_location_from); CSeqTable_multi_data::TInt& pos = col_pos->SetData().SetInt(); SWiggleStat stat; xPreprocessValues(stat); xSetTotalLoc(*table_loc, *chrom_id); size_t size = m_Values.size(); table->SetNum_rows(size); pos.reserve(size); CSeqTable_multi_data::TInt* span_ptr = 0; { // span CRef<CSeqTable_column> col_span(new CSeqTable_column); table->SetColumns().push_back(col_span); col_span->SetHeader().SetField_name("span"); if ( stat.m_FixedSpan ) { col_span->SetDefault().SetInt(stat.m_Span); } else { span_ptr = &col_span->SetData().SetInt(); span_ptr->reserve(size); } } if ( stat.m_HaveGaps ) { CRef<CSeqTable_column> col_step(new CSeqTable_column); table->SetColumns().push_back(col_step); col_step->SetHeader().SetField_name("value_gap"); col_step->SetDefault().SetReal(m_GapValue); } if (m_iFlags & fAsByte) { // values CRef<CSeqTable_column> col_min(new CSeqTable_column); table->SetColumns().push_back(col_min); col_min->SetHeader().SetField_name("value_min"); col_min->SetDefault().SetReal(stat.m_Min); CRef<CSeqTable_column> col_step(new CSeqTable_column); table->SetColumns().push_back(col_step); col_step->SetHeader().SetField_name("value_step"); col_step->SetDefault().SetReal(stat.m_Step); CRef<CSeqTable_column> col_val(new CSeqTable_column); table->SetColumns().push_back(col_val); col_val->SetHeader().SetField_name("values"); if ( 1 ) { AutoPtr< vector<char> > values(new vector<char>()); values->reserve(size); ITERATE ( TValues, it, m_Values ) { pos.push_back(it->m_Pos); if ( span_ptr ) { span_ptr->push_back(it->m_Span); } values->push_back(stat.AsByte(it->m_Value)); }