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有什麼區別 求大神解釋 兩者完全不同,scanf是輸入函 數,printf是輸出函式,所以會經常同時出現。兩者也沒有可比性,需要弄清他們的概念。1.scanf 是c語言中的一個輸入函式。函式 scanf 是從標準輸入流stdio 標準輸入裝置,一般指向鍵盤 中讀內容的通用子程式,可以說明的格式讀入多個字元,並儲存在對應地址... 是取址運算bai符,取變數在內du存單元中的首zhi地址dao,取地址運算子的操作物件必須專是記憶體單元 如變數 數屬組元素等 是間接訪問運算子,間接訪問指標所指向的物件,運算子的操作物件必須是指標 地址 因此 c m是把m在記憶體中的地址賦給c這個指標指向的變數c m是把m的地址賦給c這個指標 1... c 是一種標準 一般由ansi來規範 vc 是一種實際存在的語言,由微軟公司設計開發。microsoft visual c 簡稱visual c msvc vc 或vc 微軟公司的c 開發工具,具有整合開發環境,可提供編輯c語言,c 以及c cli等程式語言。c 是一種使用非常廣泛的計算機程式語言。...c語言中scanf和printf都是輸出函式兩者有什麼區別呢
C語言中c m和c m的區別,C語言中 「 c m」和「c m」的區別是什麼?
vc 和c 有什麼區別,VC 與C 有什麼區別和聯絡?