C語言輸入輸出語句
c語言輸入輸出函數 C語言輸入輸出函數有很多,標準 I/O 函數中包含了如下幾個常用的函數:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf 等. int scanf(const char *format, arg_list) scanf 主要從標準輸入流中獲取參數值,format為指定的參數格式及參數類型,如 scanf("%s,%d",str,icount); 它要求在標準輸入流中輸入類似"son of bitch,1000"這樣的字符串,同時程序會將"son of bitch"給str,1000給icount. scanf函數的返回值為int值,即成功賦值的個數,在上例中如果函數調用成功,則會返回2,所以我們在寫程序時,可以通過語句 if(scanf("%s,%d",str,icount) != 2){。
} 來判斷用戶輸入是否正確. int printf(const char *format, arg_list) printf 主要是將格式化字符串輸出到標準輸出流中,在stdio.h頭文件中定義了標準的輸入和輸出,分別是stdin,stdout. arg_list可以是變量名,也可以是表達式,但最終都會以值的形式填充進 format中. int getc(FILE *fp) getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結束的語句為:(ch = getc(fp)) != *為文件結束標志, 定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當fp 為stdin 時,getc(stdin)就等同于getchar()了. int putc(int ch,FILE *fp) putc主要是把符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了. int getchar(void) getchar 主要是從標準輸入流讀取一個字符.默認的標準輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符串放在緩沖區中,getchar就是在緩沖區一個一個的讀字符.當然也可以在while循環中指定終止字符,如下面的語句: while ((c = getchar()) != '#') 這是以#來結束的. int putchar(int ch) putchar(ch) 主要是把字符ch寫到標準流stdout中去. char * gets(char *str) gets 主要是從標準輸入流讀取字符串并回顯,讀到換行符時退出,并會將換行符省去. int puts(char *str) puts 主要是把字符串str寫到標準流stdout中去,并會在輸出到最后時添加一個換行符. char *fgets(char *str, int num, FILE *fp) str 是存放讀入的字符數組指針,num是最大允許的讀入字符數,fp是文件指針.fgets的功能是 讀一行字符,該行的字符數不大于num-1.因為fgets 函數會在末尾加上一個空字符以構成一個字符串.另外 fgets 在讀取 到換行符后不會將其省略. int fputs(char *str, file *fp) fputs 將 str 寫入 * 與 puts 的不同之處是 fputs 在打印時并不添加換行符. int fgetc(FILE *fp) fgetc 從 fp 的當前位置讀取一個字符. int fputc(int ch, file *fp) fputc 是將 ch 寫入 fp 當前指定位置. int fscanf(FILE *fp, char *format,。) fscanf 按照指定格式從文件中出讀出數據,并賦值到參數列表中. int fprintf(FILE *fp, char *format,。
) fprintf 將格式化數據寫入流式文件中. http://**yaoleiroyal/archive/2008/04/03/* 字符串輸入:gets() char name[20]; printf("Hi,What's your name?\n"); gets(name); printf("Nice name %s",name); 它使用一個地址把字符串賦予 name 。char name[20]; char *p; printf("\nEn,What's your name?\n"); p=gets(name); printf("%s?Oh,Nice name %s\n",name,p); get() 的代碼使用 return 關鍵字返回字符串的地址,程序把這個地址分配給指針 p 。
fgets() fgets() 是為文件 I/O 而設計的,處理鍵盤輸入不是特別方便。printf("\nHi,What's your name?\n"); p=fgets(name,20,stdin); printf("%s?Oh,Nice name %s\n",name,p); *fgets() 的第二個參數說明最大讀入的字符數。
如果這個參數值為 n ,那么 fgets() 就會讀取最 多 n-1 個字符或讀完一個換行符為止。兩個條件滿足任意一個結束。
*fgets() 讀取到換行符,就會把它存到字符串里,而不是想 gets() 那樣丟棄它。*fgets() 的第三個參數說明讀哪個文件。
從鍵盤上讀數據時,可以使用 stdin( 代表 standard input) 作為參數。scanf() char name1[11], name2[11]; int count; printf("\nPlease write down 2 names。
\n"); count=scanf("%5s %6s",name1,name2); printf("\nname1:%s\nname2:%s",name1,name2); scanf() 允許指定輸入字符串長度等格式。上面的程序如果輸入"liujiajia liujiajia",程序將輸出"name1:liuji name2:liujia"; 字符串輸出:puts() char str[15]="hello world"; const char *str2="HELLO WORLD"; puts(str); puts(str2); puts(&str[5]); puts(str2+2); puts() 顯示字符串時自動在其后添加一個換行符。
puts(&str[5]); 將輸出從 str 的第六個元素開始到字符串結束。puts(str2+2); 將輸出從 str2 的地址向后移動兩個字符開始到字符串結束。
fputs() fputs(str,stdout); fputs(str2,stdout); fputs(&str[5],stdout); fputs(str2+2,stdout); *fputs() 第二個參數表示要寫的文件。可以使用 stdout( 代表 standard output) 作為參數。
*fputs() 不自動輸出換行符,這與 puts() 不太相同。
C語言沒有輸入輸出語句
C語言本身并不提供輸入和輸出語句,輸入和輸出的操作是由函數來實現的。
C語言的標準函數庫中提供了一些輸入、輸出的函數,例如:printf函數和scanf函數。但是,printf和scanf函數并不是C語言的關鍵字,只是函數的名字,不能誤以為他們是C語言提供的“輸入、輸出語句”。
將語句翻譯成二進制的指令是在編譯階段完成的,沒有輸入、輸出語句,可以避免在編譯階段處理與硬件有關的問題。這樣,可以使編譯系統簡化、通用性強,在各類計算機中都適用。
擴展資料 1,在輸入流中,數據項必須由空格、制表符和新行符分割。逗號和分號等不是分隔符,比如以下代碼:scanf("%d%d",&r,&c); 將接受輸入 10 20,但遇到 10,20 則失敗。
2,printf()函數是格式化輸出函數, 一般用于向標準輸出設備按規定格式輸出 信息。在編寫程序時經常會用到此函數。
函數的原型為: int printf(const char *format, 。); 函數返回值為整型。
若成功則返回輸出的字符數,輸出出錯則返回負值。 參考資料:百度百科 printf() 百度百科 scanf (計算機語言函數)。
"C語言本身沒有輸入輸出語句”這句話對嗎
C語言本身并不提供輸入輸出語句,輸入和輸出操作是由函數來實現的。
在C標準函數庫中提供了一些輸入輸出函數,例如,printf函數和scanf函數。在使用他們時,千萬不要誤認為他們是C語言提供的“輸入輸出語句”。
printf和scanf不是C語言的關鍵字,而只是函數的名字。C提供的函數以庫的形式存放在系統中,它們不是C語言文本中的組成部分。
不把輸入輸出作為C語言提供的語句的目的是使C語言編譯系統簡單,因為將語句翻譯成二進制的指令是在編譯階段完成的,沒有輸入輸出語句可以避免在編譯階段處理與硬件有關的問題,可以使編譯系統簡化,而且通用性強,可移植性好,對各種型號的計算機都適用,便于在各種計算機上實現。各種版本的C語言函數庫是各計算機廠商針對某一類型計算機的情況編寫的,并且已編譯成目標文件(.obj文件)。
它們在連接階段與源程序經編譯而得到的目標文件相連接,生成一個可執行的目標程序。如果在源程序中有printf函數,在編譯時并不把它翻譯成目標指令,而是在執行階段調用已被連接的函數庫中的printf函數。
C語言輸出語句
在printf中:
1.如%md,m為整型數,可控制輸出數字的位數,當原數位數大于m時則按原樣輸出。如m==6,原數為7979則輸出為:空格空格7979。默認是從數字右邊補兩位。
2.實型中有%mf,m為一實型數,如m==9.6表示實型數總共占9位,其中小數部分6位整數部分3位。
3.如%ld則是按長整型輸出等。
在scanf中也有類似的用法``建議你去看下C語言初步方面的書。
所以有加數字的是控制輸出位數。這樣的語句是合法的,編譯系統并不會認為他是錯的。
c語言 輸出所有水仙花數
在第一個for循環前面給s賦值時,a、b、c的值沒有初始化,所以整個s=100*a+10*b+c是不確定的值,程序運行便會出錯! 建議修改:將語句s=100*a+10*b+c放到條件語句if(s==(a*a*a+b*b*b+c*c*c))之前,這樣s得到的是確定值,程序運行正常。
修改后源程序如下: #include "Stdio.h" void main() { int a,b,c,s; for(a=1;a<10;a++) { for(b=0;b<10;b++) { for(c=0;c<10;c++) { s=100*a+10*b+c; if(s==(a*a*a+b*b*b+c*c*c)) printf("%d\n",s); } } } getchar(); } 程序運行結果見插圖。 。
用C語言編程輸出菱形 圖案
#include
(其中;不能省略) 表達式 表達式1為初值表達式,用于在循環開始前為循環變量賦初值。 表達式2是循環控制邏輯表達式,它控制循環執行的條件,決定循環的次數。
表達式3為循環控制變量修改表達式,它使for循環趨向結束。 循環體語句是在循環控制條件成立的情況下被反復執行的語句。
但是在整個for循環過程中,表達式1只計算一次,表達式2和表達式3則可能計算多次,也可能一次也不計算。循環體可能多次執行,也可能一次都不執行。
先執行表達式2,然后執行循環結構,最后表達式3,一直這樣循環下去。 for循環語句是c語言種功能最為強大的語句,甚至在一定程度上可以代替其他的循環語句。
do do循環結構,do 1 while⑵;的執行順序是1->2->1。循環,2為循環條件。
while while循環結構,while(1) 2; 的執行順序是1->2->1。循環,1為循環條件 以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。
參考資料:C語言-百度百科。