2016-05-12 1 views
2

Ich versuche, Text in Spalten anzuzeigen, aber in der zweiten Zeile der Ausgabe wird ein Leerzeichen hinzugefügt. Mache ich etwas falsch? (Die Einträge enthalten kein Leerzeichen vor dem String) Hier sind die beteiligten Funktionen:Aus irgendeinem Grund fügt printf-Funktion einen Platz zu dem, was ich anzeigen möchte

add(List *book) 
{ 
    Contact *runner = book->una; 
    Contact *node = (Contact *) malloc(sizeof(Contact)); 

if (node == NULL); 
else { 
    printf("Add a contact\n"); 
    printf("Enter the first name: "); 
    scanf("%s", node->fname); 
    printf("Enter the last name: "); 
    scanf("%s", node->lname); 
    printf("Enter the mobile number: "); 
    scanf("%s", node->number); 
    printf("\nContact added!\n\n"); 
    node -> next = NULL; 
    if(book->una == NULL){ 
     book->una = node; 
    } 
    else 
    { 
     while(runner->next != NULL) 
     { 
      runner = runner->next; 
     } 
     runner->next = node; 
    } 
} 
} 

    display(List *book) 
{ 
    Contact *runner = book -> una; 
    if(runner == NULL) 
    { 
     printf("%20s", "PHONEBOOK EMPTY!"); 
     return; 
    } 
    printf("Contact list\n"); 
    printf("%-15s%-15s%-15s", "First Name", "Last Name", "Mobile number\n"); 
    while(runner != NULL) 
    { 
     printf("%-15s%-15s%-15s\n", runner->fname, runner->lname, runner->number); 
     runner = runner->next; 
    } 
} 

/*An example output basically turns out like this: 

First Name   Last Name   Mobile Number 
James    Harrison   123456 
Wendy    Barnes   00000 
Cam    Rodriguez   575938*/ 

Alle Eingangsdaten gedruckt werden, wie oben gezeigt.

+2

Das Problem scheint nicht hier zu sein. Bitte aktualisieren Sie Ihre Frage mit einem [Minimalen, vollständigen, überprüfbaren Beispiel] (http://stackoverflow.com/help/mcve) des Problems. – dbush

Antwort

9

Sie sollten die \n in der Formatzeichenfolge anstelle des Feldes einfügen. Da Mobile number 13 Zeichen hat, plus die \n 14 und ein Leerzeichen als Padding für die %-15s hinzugefügt wird, geht es nach der \n daher in der nächsten Zeile.

Verwandte Themen