में कॉलम संरेखित करना मैं एक प्रोग्राम लिखने की कोशिश कर रहा हूं जो कुछ वर्ण स्थिरांक के संख्यात्मक मान प्रदर्शित करता है (if
कथन में से)। एक समस्या को छोड़कर, कोड काम करता है। आउटपुट को कॉलम में अच्छी तरह से गठबंधन किया जाना चाहिए, लेकिन जैसा कि नीचे दिखाया गया है, यह नहीं है। कॉलम को ठीक से लाइन करने के लिए सबसे अच्छा तरीका क्या है?सी आउटपुट
#include <stdio.h>
#include <ctype.h>
int main() {
unsigned char c;
printf("%3s %9s %12s %12s\n", "Char", "Constant", "Description", "Value");
for(c=0; c<= 127; ++c){
if (c == '\n') {
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\n","newline","0x", c);
}else if (c == '\t'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\t","horizontal tab","0x", c);
}else if (c == '\v'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\v","vertical tab","0x", c);
}else if (c == '\b'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\b","backspace","0x", c);
}else if (c == '\r'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\r","carriage return","0x", c);
}else if (c == '\f'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\f","form feed","0x", c);
}else if (c == '\\'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\","backslash","0x", c);
}else if (c == '\''){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\'","single quote","0x", c);
}else if (c == '\"'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\"","double quote","0x", c);
}else if (c == '\0'){
printf("%3d %7s \t%s \t\t%s%03x\n", c,"\\0","null","0x", c);
}
}
return 0;
}
यहाँ उत्पादन है::
यहाँ मेरी कोड है
प्रारूप में स्ट्रिंग औचित्य/लंबाई विकल्प एक अच्छा समाधान है। आप टैब के साथ सही रास्ते पर हैं लेकिन क्योंकि आपके पास वर्णन कॉलम में अलग-अलग लंबाई हैं, यह आपको फेंक रहा है। आप एक प्रारंभिक बिंदु के रूप में 'printf ("% - 30s ", विवरण) को आजमा सकते हैं। –
यदि कोड काम करता है तो यह http://codereview.stackexchange.com/ –
पर अधिक उपयुक्त है, यह काम नहीं करता है क्योंकि कॉलम को रेखांकित किया जाना चाहिए, लेकिन वे –