3

cからシステムコールを実行しようとしていました。次のコードが実行されると、最初に日付が出力され、続いて " Todays date is ..........:"改行されます。putsに置き換えprintfたところ、意図したとおりに実行されました ( 2 番目の の代わりにputs@pltobjdumpが表示されました)。なぜそうなのか誰か教えてもらえますか?printf

  #include <stdlib.h>

    int main() { printf(" Todays date is ..........:");

    system("/bin/date");
    printf("\n This is your exclusive shell\n");  
    system("/bin/sh");
    return 0; 
    }

前もって感謝します。

4

4 に答える 4

3
printf(" Todays date is ..........:");

==>

printf(" Todays date is ..........:\n");

または、行のfflush(stdout);後にa を追加します。printf

于 2013-08-20T11:12:29.187 に答える
1
  #include <stdlib.h>  
  #include <stdio.h>

    int main() { printf(" Todays date is ..........:\n"); //add \n at the end. this is same behavior as puts. now date will print after this

    system("/bin/date");
    printf("\n This is your exclusive shell\n");  
    system("/bin/sh");
    return 0; 
    }  

または、ステートメントのfflush(stdout);後に使用できますprintf("Todays date is ....:");

于 2013-08-20T11:38:12.997 に答える