int main() { cout << "Please enter numbers one by one: "; // Input the numbers long num; vector<long> numbersToSquare; while(cin >> num) { // while reading in was a success numbersToSquare.push_back(num); } // Square the numbers vector<long> squared = square(numbersToSquare); // Find the maxIntLength for pretty printing below typedef vector<long>::size_type vecSize; vecSize maxLengthOfNumbers = maxDigits(squared); vecSize n1 = 3 + maxLengthOfNumbers; vecSize n2 = n1 + 4; // Print out with setw() cout << setw(n1) << left << "N: " << setw(n2) << left << "N^2: " << endl; for(vecSize i = 0; i < squared.size(); i++){ cout << setw(n1) << left << numbersToSquare[i] << setw(n2) << left << squared[i] << "\n"; } return 0; }
void bafWriteLine(struct baf *baf) /* Write out a line of an alignment (which takes up * three lines on the screen. */ { int i; int count = baf->cix; int nStart = baf->nLineStart + 1 + baf->nNumOff; int hStart = baf->hLineStart + 1 + baf->hNumOff; int nEnd = baf->nCurPos + baf->nNumOff; int hEnd = baf->hCurPos + baf->hNumOff; int startDigits = maxDigits(nStart, hStart); int endDigits = maxDigits(nEnd, hEnd); int hStartNum, hEndNum; int nStartNum, nEndNum; static struct axtScoreScheme *ss = 0; /* Scoring scheme. */ struct cfm cfm; extern char blosumText[]; extern struct axtScoreScheme *axtScoreSchemeFromProteinText(char *text, char *fileName); boolean revArrows = (baf->nCountDown ^ baf->hCountDown); char arrowChar = (revArrows ? '<' : '>'); ZeroVar(&cfm); cfm.out = baf->out; if (ss == 0) ss = axtScoreSchemeFromProteinText(blosumText, "fake"); if (baf->nCountDown) { nStartNum = baf->nNumOff - baf->nLineStart; nEndNum = 1+baf->nNumOff - baf->nCurPos; } else { nStartNum = 1+baf->nNumOff + baf->nLineStart; nEndNum = baf->nNumOff + baf->nCurPos; } fprintf(baf->out, "%0*d ", startDigits, nStartNum); for (i=0; i<count; ++i) fputc(baf->nChars[i], baf->out); fprintf(baf->out, " %0*d\n", endDigits, nEndNum); for (i=0; i<startDigits; ++i) fputc(arrowChar, baf->out); fputc(' ', baf->out); for (i=0; i<count; ++i) { char n,h,c = ' '; n = baf->nChars[i]; h = baf->hChars[i]; if (baf->isTrans) { if (n != ' ') { DNA codon[4]; codon[0] = baf->hChars[i-1]; codon[1] = h; codon[2] = baf->hChars[i+1]; codon[3] = 0; tolowers(codon); c = lookupCodon(codon); cfmPushFormat(&cfm); if (toupper(n) == c) cfmOut(&cfm, '|', seqOutColorLookup[0]); else { int color; if (c == 0) c = 'X'; if (ss->matrix[(int)toupper(n)][(int)c] > 0) color = 5; else color = 6; cfmOut(&cfm, c, seqOutColorLookup[color]); } cfmPopFormat(&cfm); } else { fputc(c, baf->out); } } else { if (toupper(n) == toupper(h)) c = '|'; fputc(c, baf->out); } } fputc(' ', baf->out); for (i=0; i<endDigits; ++i) fputc(arrowChar, baf->out); fprintf(baf->out, "\n"); if (baf->hCountDown) { hStartNum = baf->hNumOff - baf->hLineStart; hEndNum = 1+baf->hNumOff - baf->hCurPos; } else { hStartNum = 1+baf->hNumOff + baf->hLineStart; hEndNum = baf->hNumOff + baf->hCurPos; } fprintf(baf->out, "%0*d ", startDigits, hStartNum); for (i=0; i<count; ++i) fputc(baf->hChars[i], baf->out); fprintf(baf->out, " %0*d\n\n", endDigits, hEndNum); }