puts和printf區別,c語言 求教puts和printf的區別。

2022-01-31 17:07:41 字數 4327 閱讀 5540

1樓:湛藍水晶

puts(str) //str為一字串

則自動在str的後面加一個換行符\n

而printf(str)則需要手動加上\n同理,gets接收字串時,會將字串後面的\n去掉,而用scanf接收時,會在字串後面加上\n

所以,puts要和gets搭配,scanf和printf搭配使用。

2樓:匿名使用者

c中的puts函式只用來輸出字串,沒有格式控制,它裡面的引數就是存放字串的字元陣列的陣列名就可以了,

printf函式輸出格式有很多,型別也不用說了,可以根據不同格式加些轉義字元以達到格式華的輸出,比如換行,製表等等....

3樓:

在c中,,puts相當於put char是輸出char字元,,printf是最後顯示的時候,要用的函式

4樓:匿名使用者

而且,puts只能輸出字串

5樓:穰碧遇浦和

c中的puts函式只用來輸出字串,沒有格式控制,它裡面的引數就是存放字串的字元陣列的陣列名就可以了,

printf函式輸出格式有很多,型別也不用說了,可以根據不同格式加些轉義字元以達到格式華的輸出,比如換行,製表等等....

scanf裡面我們無法輸入空格,當你輸入空格時,空格後面的內容就沒有放到你指定的變數裡面。例如

char

a[4];

scanf

("%s",a);//輸入一個字串,%s是表示字串for(i=0;i<=4;i++)

printf("%c",a[i]);

執行的時候你輸入i

am試試,它得到的是i,而後面的

空格和am就沒有了。

換句話說,scanf當遇到空格時,它就把它當做'\0',就是自動停止如果你用gets的話

char

a[4];

a=gets();//輸入一個字串,%s是表示字串for(i=0;i<=4;i++)

printf("%c",a[i]);

你還是輸入i

am的到的就是iam

c語言 求教puts和printf的區別。

6樓:吉祥二進位制

兩者的區別在於puts的功能更單一,只能輸出字串,而printf可以根據給定的格式輸出多種型別的資料。

1、puts()函式用來向標準輸出裝置(螢幕)寫字串並換行,其呼叫方式為,puts(s);其中s為字串字元(字串陣列名或字串指標)。

#include

int main()

2、printf()函式是格式化輸出函式, 一般用於向標準輸出裝置按規定格式輸出資訊。

printf()函式的呼叫格式為: printf("《格式化字串》", 《參量表》)。

格式輸出,它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。用於向終端(顯示器、控制檯等)輸出字元。

格式控制由要輸出的文字和資料格式說明組成。要輸出的的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義。

示例:通過printf函式輸出字串、有符號整數、單精度浮點數、雙精度浮點數。

#include

int main()

3、printf控制字元的格式:

① d格式:用來輸出十進位制整數。有以下幾種用法:

%d:按整型資料十進位制的實際長度輸出。

%md:m為指定的輸出欄位的寬度。如果資料的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。

%ld:輸出長整型資料。

② o格式:以無符號八進位制形式輸出整數。

%d:按整型資料八進位制的實際長度輸出。

%lo:對長整型可以用格式輸出

%mo:指定欄位寬度用格式輸出

③ x格式:以無符號十六進位制形式輸出整數。

%x:按整型資料十六進位制的實際長度輸出。

%lx:對長整型可以用格式輸出

%mx:指定欄位寬度用格式輸出

④ u格式:以無符號十進位制形式輸出整數。

%u:按無符號整型資料十進位制的實際長度輸出。

%lu:對長整型可以用格式輸出

%mu:指定欄位寬度用格式輸出

⑤ c格式:輸出一個字元。

⑥ s格式:用來輸出一個串。有幾中用法

%s:例如:printf("%s", "china")輸出"china"字串(不包括雙引號)。

%ms:輸出的字串佔m列,如字串長度大於m,將字串全部輸出。若串長小於m,則左補空格。

%-ms:如果串長小於m,則在m列範圍內,字串向左靠,右補空格。

%m.ns:輸出佔m列,但只取字串中左端n個字元。這n個字元輸出在m列的右側,左補空格。

%-m.ns:其中m、n含義同上,n個字元輸出在m列範圍的左側,右補空格。如果n>m,則自動取n值,即保證n個字元正常輸出。

⑦ f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:

%f:不指定寬度,整數部分全部輸出並輸出6位小數。

%m.nf:輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。

%-m.nf:輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。

⑧ e格式:以指數形式輸出實數。可用以下形式:

%e:數字部分(又稱尾數)輸出6位小數,指數部分佔5位或4位。

%m.ne和%-m.ne:m、n和」-」字元含義與前相同。

此處n指資料的數字部分的小數位數,m表示整個輸出資料所佔的寬度。

7樓:匿名使用者

怎麼可能puts不能輸出???

你這個程式的錯誤在於while(*p++)這句,跟用printf還是puts沒什麼關係.

while(*p++);後面要加一句p--;不然p指向的是原來的sza字串的結束符的後一個位元組位置.

8樓:

本來都可以的,但你是執行完puts(sza);後,指標已經移動到最後了,才執行的printf("%s",sza);當然什麼也輸不出來了

9樓:焦博簡

這個程式好亂啊,你要輸出,幹嘛用中間那兩行,而且,判斷條件應該是==吧

至於puts函式,應該是可以的,可能編譯器應該出現問題在這之前吧,而不是puts函式問題

c語言中,puts和printf函式有什麼區別?

10樓:藏素枝家賦

1.puts()函式只用來輸出字串,沒有格式控制,裡面的引數可以直接是字串或者是存放字串的字元陣列名。

2.printf()函式的輸出格式很多,可以根據不同格式加轉義字元,達到格式化輸出。

3.puts()函式的作用與語句printf("%s\n",s);的作用形同。

11樓:呂孝貿衣

puts是輸出一行字串的

printf可根據格式控制符輸出任意資料

c語言裡面這個puts和printf看不懂啊

12樓:匿名使用者

puts是輸出字串,遇到字串中的0值時結束,並且輸出回車printf也是輸出字串,但沒有自動加換行的功能,因此你看到兩行前面到大寫c都輸出一致

而用迴圈逐一輸出字元陣列內容,遇到0也不會自動結束,由於0字元無法顯示輸出空字元,不佔輸出位置,從頭輸出時,前面的內容與puts是一致的,因此你看到又重複輸出了到大寫c的內容,之後才是後續內容,這部分是前面兩個語句無法輸出的,屬於另一截字串內容了

陣列中存放了兩個字串,如果想與迴圈輸出效果相同的內容,可以寫:

printf("%s%s",str,str+9); //這裡給出了兩個字串起始位置,每個字串輸出遇到0則結束

13樓:匿名使用者

\0代表字元數串的結束標誌,不是空格!

也就是字元陣列的最後一位加上的'\0'

\0的ascii碼為0,也就是空字元

上面的就是從字元陣列的開始讀取,直到最後字串結束標誌'\0'。

字串總是以'\0'作為串的結束符。因此當把一個字串存入一個陣列時,也把結束符'\0'存入陣列,並以此作為該字串是否結束的標誌。

c語言 請問gets和scanf,printf和puts有什麼區別 求大神解釋

c語言中scanf和printf都是輸出函式兩者有什麼區別呢

兩者完全不同,scanf是輸入函 數,printf是輸出函式,所以會經常同時出現。兩者也沒有可比性,需要弄清他們的概念。1.scanf 是c語言中的一個輸入函式。函式 scanf 是從標準輸入流stdio 標準輸入裝置,一般指向鍵盤 中讀內容的通用子程式,可以說明的格式讀入多個字元,並儲存在對應地址...

C語言中c m和c m的區別,C語言中 「 c m」和「c m」的區別是什麼?

是取址運算bai符,取變數在內du存單元中的首zhi地址dao,取地址運算子的操作物件必須專是記憶體單元 如變數 數屬組元素等 是間接訪問運算子,間接訪問指標所指向的物件,運算子的操作物件必須是指標 地址 因此 c m是把m在記憶體中的地址賦給c這個指標指向的變數c m是把m的地址賦給c這個指標 1...

vc 和c 有什麼區別,VC 與C 有什麼區別和聯絡?

c 是一種標準 一般由ansi來規範 vc 是一種實際存在的語言,由微軟公司設計開發。microsoft visual c 簡稱visual c msvc vc 或vc 微軟公司的c 開發工具,具有整合開發環境,可提供編輯c語言,c 以及c cli等程式語言。c 是一種使用非常廣泛的計算機程式語言。...