2016-03-30 12 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

相关问题