㈠ 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)) != EOF.EOF為文件結束標志, 定義在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
寫入
fp.fputs
與
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://www.cnblogs.com/yaoleiroyal/archive/
2008
/
04
/
03
/1135819.html
字元串輸入:
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函數。在使用他們時,千萬不要誤認為他們是C語言提供的「輸入輸出語句」。printf和scanf不是C語言的關鍵字,而只是函數的名字。C提供的函數以庫的形式存放在系統中,它們不是C語言文本中的組成部分。不把輸入輸出作為C語言提供的語句的目的是使C語言編譯系統簡單,因為將語句翻譯成二進制的指令是在編譯階段完成的,沒有輸入輸出語句可以避免在編譯階段處理與硬體有關的問題,可以使編譯系統簡化,而且通用性強,可移植性好,對各種型號的計算機都適用,便於在各種計算機上實現。各種版本的C語言函數庫是各計算機廠商針對某一類型計算機的情況編寫的,並且已編譯成目標文件(.obj文件)。它們在連接階段與源程序經編譯而得到的目標文件相連接,生成一個可執行的目標程序。如果在源程序中有printf函數,在編譯時並不把它翻譯成目標指令,而是在執行階段調用已被連接的函數庫中的printf函數。
㈢ c語言中要求用戶自己輸入的語句怎麼寫
一般可以用scanf(),因為可以用來輸入各種格式的數據。
比如有int類型的變數a,char類型的b,可以用
scanf("%d",a);
scanf("%c",b);
㈣ c語言中有那些輸出輸入語句
putchar(輸出字元)getchar(輸入字元)printf(格式輸出)scanf(格式輸入)puts(輸出字元串)gets(輸入字元串)
%d按十進制整形數據的實際長度輸出
%md。m為指定的輸出欄位的寬度。如果位數小於m,則左邊補以空格,大於m,則實際輸出。例:printf("%4d,%4d,a,b");當a=123b=12345則輸出空123,12345
%ld是輸出長整形數據
o是格式符。以8進制輸出
x是格式符。以16進制輸出
u是格式符,用來輸出無符號數,10進制輸出
㈤ C語言正確的輸入語句
首先說一下, 這道題目的答案是:C
接下來我們了解下scanf (...) 函數
函數原型 :
intscanf(constchar*restrictformat,...);
1、函數 scanf() 是從標准輸入流stdin (標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
2、函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。
返回值 :
scanf函數返回成功讀入的數據項數,讀入數據時遇到了「文件結束」則返回EOF。
如:scanf("%d%d",&a,&b);
1、函數返回值為int型。如果a和b都被成功讀入,那麼scanf的返回值就是2;
2、如果只有a被成功讀入,返回值為1;
3、如果a和b都未被成功讀入,返回值為0;
4、如果遇到錯誤或遇到end of file,返回值為EOF。end of file為Ctrl+z 或者Ctrl+d。
由上面的知識點可以,輸入位置的變數應該是要寫成指針類型的(表示取地址)。
int 類型取址是用的是&n, 而char c[5]是數組類型,其地址本身就是 c(同時也是數組名)。
如果以上對你有幫助,請採納一下, 謝謝。
㈥ c語言輸出語句
float型默認6位小數
按%f輸出,默認小數點後有6位
12,域寬,不足補空格,你數數從第一個j到最後一個0是不是一共12個?
㈦ C語言里如何在輸出語句上面進行輸入
#include <stdio.h>
#include <windows.h>
#include <conio.h>
/***此函數用於跳轉當前輸出遊標位置:x 表示列,y表示行*/
void gotoxy(int x, int y)
{
COORD coord = {x - 1, y - 1};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main()
{
int i = 0;
gotoxy(1, 2);/**在當前顯示第2行開頭開始顯示一下內容**/
printf("請輸入一個數: ");
printf("***************************************************** ");
gotoxy(15, 2); /**游標跳轉到「請輸入一個數:」的冒號後面**/
scanf("%d", &i);/**輸入一個數字**/
gotoxy(1,6); /**跳轉到第6行開頭顯示你輸入的數字**/
printf("您輸入的數字是:%d ", i);
getch(); /**屏幕暫停一下,便與你查看顯示結果,按任意鍵結束**/
return 0;
}
樓主可以將以上代碼直接復制黏貼進行測試,我測試的結果如圖:
㈧ c語言輸入語句
getchar()和scanf("%c")的功能都是讀一個字元
區別是getchar()可以讀回車,而scanf("%c")會跳過回車。
所以scanf讀了2個字元1,2分別給了a,b。
然後第一個getchar()讀了回車符給c,讀了3給d.
㈨ c語言輸入語句getch()求解答
你可以用system("pause");終止,這個函數在#include"stdlib"庫中