2016-03-30 14 views
1

我是C編程的新手。將字符串中的字符位置設爲靜態,以便它不會移動

我所希望做的是找到一種方法來凍結「|」是在printf語句,主要是那些對代碼的權利。

會發生什麼事是,你可以在代碼中看到,如果我把這些東西產生字符的可變量是移動printf語句裏面「|」因此它產生的字符數。

所以我希望能看到,如果有人可以幫助我,所以什麼都被中的printf內產生不移位的位置「|」。

下面的代碼讓你們有一個想法˚F我在說什麼。

#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"); 
} 

回答

3

我不會破壞你的學習樂趣,只是提供一些提示。

strlen%<width>s%<-width>s說明符printf格式字符串是你的朋友。閱讀關於他們可能會幫助你。

例如比較的

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

訴輸出/ s的

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

V/S

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

,並使用一些數學。

另一種方式來實現的功能是準備您的固定長度字符串在飛行以進行打印。

您可能還需要閱讀Centering strings with printf()

+0

非常感謝你的幫助真的幫了我很多。 – Alfredo

+0

作爲一個側面提示,學習複雜的printf格式說明符或其他stdio細節可能會浪費您的時間,除非您的目標是成爲Linux程序員。在Linux之外,很少有專業程序將stdio.h用於生產代碼。 – Lundin

相關問題