2016-03-30 13 views
1

Ich bin neu bei C-Programmierung.Die Position eines Zeichens in einer Zeichenkette statisch machen, so dass es sich nicht bewegt

Ich suche nach einer Möglichkeit, das "|" einzufrieren, das in den printf-Anweisungen enthalten ist, hauptsächlich diejenigen, die sich rechts vom Code befinden.

Was passiert, ist, dass, wie Sie im Code sehen können, wenn ich etwas in diese printf-Anweisungen, die eine variable Anzahl von Zeichen erzeugen, das "|" entsprechend der Anzahl der Zeichen, die es generiert, bewegt.

Also ich hoffe zu sehen, wenn mir jemand dabei helfen könnte, so dass was auch immer innerhalb des printf erzeugt wird, nicht die Position des "|" verschiebt.

Hier ist der Code, damit Sie eine Idee f haben, worüber ich spreche.

#include <stdio.h> 

int main() 
{ 

    char Employee1_NameF[20]; 
    char Employee1_NameL[20]; 

     printf("Employee Name: "); 
     scanf("%s %s", &Employee1_NameF,&Employee1_NameL); 

    printf(" __________________________________________________________________________________________________ \n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|--------------------------------------------------------------------------------------------------|\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n");; 
    printf("|__________________________________________________________________________________________________|\n"); 
    printf("|--------------------------------------------------------------------------------------------------|\n"); 
    printf("|   THE FACE OF THIS DOCUMENT HAS A MULTICOLORED BACKGROUND ON WHITE PAPER     |\n"); 
    printf("|--------------------------------------------------------------------------------------------------|\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                     %s %s   |\n", Employee1_NameF, Employee1_NameL); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|                         |\n"); 
    printf("|__________________________________________________________________________________________________|\n"); 
} 

Antwort

3

Ich werde nicht Ihren Lernspaß verderben, nur ein paar Hinweise geben.

strlen und %<width>s und %<-width>s Spezifizierer in printf Formatzeichenfolgen sind Ihre Freunde. Das Lesen über sie kann dir helfen.

Zum Beispiel vergleichen die Ausgabe von

printf("<%8s%8s>\n", "foo", "bar"); 

v/s

printf("<%-8s%-8s>\n", "foo", "bar"); 

v/s

printf("<%s%s>\n", "foo", "bar"); 

und einige Mathematik verwenden.

Eine andere Möglichkeit, die Funktionalität zu erreichen, besteht darin, Ihre Strings mit fester Länge so vorzubereiten, dass sie im Handumdrehen gedruckt werden können.

Sie können sich auch für die Hilfe Centering strings with printf()

+0

Vielen Dank lesen wollen, es half mir wirklich viel. – Alfredo

+0

Als eine Nebenbemerkung, ist das Lernen über komplizierte printf Formatspezifizierer oder andere stdo Details wahrscheinlich eine riesige Verschwendung Ihrer Zeit, es sei denn, Sie streben vielleicht eine Karriere als Linux-Programmierer. Außerhalb von Linux verwenden nur sehr wenige professionelle Programme stdio.h für den Produktionscode. – Lundin

Verwandte Themen