%4d用在printf()裡面,表示在當前游標所在位置以“右對齊”的方式輸出int型別的整數,佔四個字元寬度,比如整數123,printf()輸出的是三個字元"1","2","3",一個字元佔一個字元寬度。123只佔了三個字元寬度,那麼第1個字元寬度就是空格符,空格符在螢幕上你是看不到的,輸出後,游標是在字元"3"後面。如果加\n換行符,游標就在下一行的起始位置。如果是12345,超過了四個字元寬度,就從游標所在位置完整輸出並向後再佔一個字元寬度。輸出後,游標在字元"5"後面。%-4d,就是以“左對齊”的方式輸出。123的第四個字元寬度就是空格符,輸出後游標是在空格符後面。其它情況可以類推,比如%5d,%6d,%-5d,%-6d............%5f,%-5f......還有%4d這種不叫轉義序列,而是轉換說明。如果用在scanf()裡,%4d表示讀取的最大字元寬度,也就是你輸入了五位數,最多讀取前四位。如果是兩位數接著是空白符(空格符,製表符,換行符等),讀取的就是兩位數。在scanf()裡不要使用%-4d,因為會發生意想不到的錯誤,讀取的資料和當前緩衝區裡的字元流有關。
%4d用在printf()裡面,表示在當前游標所在位置以“右對齊”的方式輸出int型別的整數,佔四個字元寬度,比如整數123,printf()輸出的是三個字元"1","2","3",一個字元佔一個字元寬度。123只佔了三個字元寬度,那麼第1個字元寬度就是空格符,空格符在螢幕上你是看不到的,輸出後,游標是在字元"3"後面。如果加\n換行符,游標就在下一行的起始位置。如果是12345,超過了四個字元寬度,就從游標所在位置完整輸出並向後再佔一個字元寬度。輸出後,游標在字元"5"後面。%-4d,就是以“左對齊”的方式輸出。123的第四個字元寬度就是空格符,輸出後游標是在空格符後面。其它情況可以類推,比如%5d,%6d,%-5d,%-6d............%5f,%-5f......還有%4d這種不叫轉義序列,而是轉換說明。如果用在scanf()裡,%4d表示讀取的最大字元寬度,也就是你輸入了五位數,最多讀取前四位。如果是兩位數接著是空白符(空格符,製表符,換行符等),讀取的就是兩位數。在scanf()裡不要使用%-4d,因為會發生意想不到的錯誤,讀取的資料和當前緩衝區裡的字元流有關。