1樓:匿名使用者
#include
int main()
2樓:傲血風
%d輸出的是有符號的整數,超過127的數字,在二進位制的最高位就是1了。那麼在後符號數的首位標記正負。如果是1,就是負數了。
具體還是看看補碼運演算法則吧
3樓:
c語言的字元是ascii編碼 標準的ascii碼只到127吧 沒記清楚 大概是這個數 char 的變數存的值太大直接溢位了
4樓:落葉知秋
#include
int main()
自己對著下吧 主要是變數型別錯誤使程式設計識別不了
5樓:寒溪大鯢
把char換成int
6樓:匿名使用者
你還是去看看ascii碼吧!
c語言怎麼用printf輸出字串。
7樓:叫8爸爸
printf函式的一般格式
printf(格式控制字串,輸出表列);
以圖1所示為例。
圖1.函式引數包括兩部分:
【1】格式控制字串,是用雙引號括起來的字串,也稱為轉換控制字串,它指定輸出資料項的型別和格式。
它包括兩種資訊:
●格式說明項:由%和格式字元組成,如%d,%f等。格式說明總是由%字元開始,到格式字元終止。
它的作用是將輸出的資料項轉換為指定的格式輸出。輸出表列中的每個資料項對應一個格式說明項。
● 普通字元:即需要原樣輸出的字元,如逗號和換行符。
【2】輸出列表,是需要輸出的一些資料項,可以是表示式。
例如:假如a=3,b=4,那麼printf("a=%db=%d",a,b);,輸出a=3b=4。其中兩個 「%d」是格式說明,表示輸出兩個整數,分別對應變數a,b。
「a=」,「b=」是普通字元,原樣輸出。
由於printf是函式,因此,格式控制字串和輸出表列實際上都是函式的引數。printf函式的一般形式可以表示為:
printf(引數1,引數2,引數3,…,引數n)
printf函式的功能是將引數2到引數n按照引數1給定的格式輸出。
【3】格式字元 (構成格式說明項)
對於不同型別的資料項,應當使用不同的格式字元構成的格式說明項。常用的有以下幾種格式字元:(按不同型別資料,列出各種格式字元的常用用法)
【d格式符】用來輸出十進位制整數。有以下幾種用法:
● %d,按照資料的實際長度輸出。
● %md,m指定輸出欄位的寬度 (整數)。如果資料的位數小於m,則左端補以空格(右對齊);若大於m,則按照實際位數輸出。
● %-md,m指定輸出欄位的寬度 (整數)。如果資料的位數小於m,則右端補以空格 (左對齊);若大於m,則按照實際位數輸出。
● %ld,輸出長整型資料,也可以指定寬度%mld。
【o格式符】以八進位制形式輸出整數。注意:是將記憶體單元中的各位的值按八進位制形式輸出,輸出的資料不帶符號,即將符號位也一起作為八進位制的一部分輸出。
例如:inta=-1;
printf("%d,%o,%x",a,a,a);
-1的原碼:1000,0000,0000,0001。
-1在記憶體中的補碼錶示為:
1111,1111,1111,1111=1,111,111,111,111,111=1,7,7,7,7,7=ffff
輸出:-1,177777,ffff
【s格式符】用來輸出一個字串。有以下幾種用法:
● %s,輸出字串。
● %ms,輸出的字串佔m列,如果字串長度大於m,則字串全部輸出;若字串長度小於m,則左補空格 (右對齊)。
● %-ms,輸出的字串佔m列,如果字串長度大於m,則字串全部輸出;若字串長度小於m,則右補空格 (左對齊)。
● %m.ns,輸出佔m列,但只取字串左端n個字元,左補空白 (右對齊)。
● %-m.ns,輸出佔m列,但只取字串左端n個字元,右補空白 (左對齊)。
【 f 格式符】用來輸出實數 (包括單、雙精度,單雙精度格式符相同),以小數形式輸出。有以下幾種用法:
● %f,不指定寬度,使整數部分全部輸出,並輸出6位小數。注意,並非全部數字都是有效數字,單精度實數的有效位數一般為7位 (雙精度16位)。
● %m.nf,指定資料佔m列,其中有n位小數。如果數值長度小於m,左端補空格(右對齊)。
● %-m.nf,指定資料佔m列,其中有n位小數。如果數值長度小於m,右端補空格(左對齊)。
【 e 格式符】以指數形式輸出實數。可用以下形式表示:
● %e,不指定輸出資料所佔的寬度和小數位數,由系統自動指定。如6位小數,指數佔5位,-e佔1位,指數符號佔1位,指數佔3位。數值按照規格化指數形式輸出 (小數點前必須有而且只有1位非0數字)。
8樓:大野瘦子
void main()
printf輸出字串的一些格式
1、原樣輸出字串:printf("%s", str);
2、輸出指定長度的字串, 超長時不截斷, 不足時右對齊:printf("%ns", str);
注:n 為指定長度的10進位制數值
3、輸出指定長度的字串, 超長時不截斷, 不足時左對齊:printf("%-ns", str);
注:n 為指定長度的10進位制數值
4、輸出指定長度的字串, 超長時截斷, 不足時右對齊:printf("%n.ms", str);
注:n 為最終的字串輸出長度
m 為從引數字串中取出的子串長度
5、輸出指定長度的字串, 超長時截斷, 不足時左對齊是: printf("%-n.ms", str);
注:n 為最終的字串輸出長度
m 為從引數字串中取出的子串長度
9樓:福建省寧德市
printf函式的一般使用形式為:printf("輸出格式",輸出項系列);要輸出字串,則只需寫出相應的輸出格式以及輸出項系列即可,其中輸出格式為%s,輸出項系列為字串名
printf函式輸出字串的例子如下:
#include
void main()
上述程式輸出了字串 abcd
10樓:上帝來自地球
列子如下:
#include
struct student;
int main(void)
11樓:匿名使用者
假設你的結構變數為s,用s.a去訪問那個字串即可。
printf("%s", s.a);就可以列印了
12樓:烏龍魔法師
#include
main()
這樣也是可以的
,另外c還提供了函式輸入輸出字串
上面用gets(name);輸入
puts(name) 輸出也是可以的
13樓:伊·梵
沒有中文環境,用printf不能輸出漢字
一種取巧的辦法是,自己構造"你好"的點陣字模(也可以使用現成的點陣漢字型檔),然後用printf("@")輸出點陣,可以看到巨大的"你好"
圖形模式下可以使用點陣漢字型檔輸出中文,不過那不是用printf實現的
14樓:重生之狼
int number;
char name[10];
int score;
printf("%d %s %d",number,name,score);
15樓:烏鴉
#include
int main(void)
注意 如果不支援中文字型檔 會出現亂碼
16樓:匿名使用者
printf("%s\n",&a);
17樓:匿名使用者
c語言裡沒有string
只有定義個字元陣列
char name[20];
printf("%d %s %d",number,name,score);
標頭檔案stdio.h
c語言輸入輸出字串
18樓:風若遠去何人留
在c語言中,輸入輸出字串有以下兩種方式:
1 用scanf/printf輸入輸出。
scanf/printf是c語言的格式化輸入輸出函式,可以用於輸入輸出各種基礎型別,字串(char*)也在其支援範圍內。
格式化字元為%s。
定義char str[100];
輸入scanf("%s",str);
輸出printf("%s",str);
2 c語言還支援專門的字串輸入輸出函式:gets/puts。
gets的作用為,讀入一行輸入,並將讀到的換行符替換為字串結束符。
puts的作用為,將字串單行輸出,即輸出字串內容後,會自動在結尾增加換行。
定義char str[100];
輸入gets(str);
輸出puts(str);
19樓:子水消燈
ch緩衝區過短,導致溢位,ch中只存了 你輸入的前5個字元,限定輸入用scanf(「%5s」,ch)就行了,這樣ch中就是就是存的你數入的前5個字元,至於char ch;錯誤是因為格式化錯誤,即%s和ch不匹配,char ch【】在c語言中是不成立的,陣列必須是定長的。
20樓:
首先,你的理解沒有錯,char就是一個字元的宣告方式.ch[5]就是5個字元.
其次char ch這種宣告是沒錯的.
唯一有問題的是sanf以及printf中的格式字元,如果是char應該用%c.而且如果在程式內部賦值的話,字串要用""括起,而字元只能用''括起.
這種定義和c++是不一樣的,c++完全允許char ch這種宣告方式的.
21樓:匿名使用者
puts()和gets()都是陣列函式,輸入或輸出前要定義陣列例如:char a[50];
gets(a);
puts(a);
就是一個簡單的輸入後再將輸入的東西輸出,puts()的輸入和printf的輸出是有一定的區別的,puts()遇到『\0'就終止,而用printf則不會這樣。
例如:char a[50];
gets(a);
puts(a);
printf("%s",a);
如果正好輸入50個字元,則兩次輸出一致。但如果輸入字元不足50個,puts()輸出輸入的全部字元,而沒有輸入的不輸出,而printf則不能識別'\0',所以會出現亂碼。
22樓:
char ch[5]表示的是定義了一個字元陣列(即字串),陣列單元有5個,每個單元都是字元型,由於字串是用\0作結束的,5個單元的字元陣列實際上能完整儲存的只能是長度不超過4個字元的字串,多了的話就要佔用其他單元了(這些單元有可能會被系統分配給其他變數,而能夠用來儲存字串的就是你定義的這5個單元的字元陣列),可能會出現溢位,也就是有時候會出現輸出的字串後面有亂碼
char ch表示定義了一個字元變數,用scanf為其賦值的話應該用%c,即scanf("%c",&ch),它只能表示一個字元
char ch陣列定義不允許裡為空
char ch[1]表示的也是一個字元陣列,所以你可以輸入字串,同樣隨便輸入就有可能溢位
c語言中如何輸入輸出字串
在c語言中,輸入輸出字串有以下兩種方式 1 用scanf printf輸入輸出。scanf printf是c語言的格式化輸入輸出函式,可以用於輸入輸出各種基礎型別,字串 char 也 其支援範圍內。格式化字元為 s。定義char str 100 輸入scanf s str 輸出printf s st...
C語言中如何清空輸入輸出緩衝區,C語言如何清除鍵盤輸入快取區?
最簡單的是用fflush 函式。此函式包含在stdio.h標頭檔案中,用來強制將緩衝區中的內容寫入檔案。函式原型 int fflush file stream 函式功能 清除一個流,即清除檔案緩衝區.常用場合 一 ff stdin 重新整理標準輸入緩衝區,把輸入緩衝區裡的東西丟棄 fflush st...
c語言中如何實現多組資料輸入輸出
c語言中有一個 標準輸入函式,即 scanf函式,它可以讀取輸入的任意格式版型別的資料。scanf函式也有返 權回值,返回型別為int型別,它返回成功讀入的專案的個數。如果它沒有讀取任何專案 當它期望一個數字而您卻鍵入了一個非數字字串時就會發生這種情況,scanf 會返回0。當它檢測到 檔案結尾 e...