當前位置:首頁 » 編程語言 » c語言輸入輸出

c語言輸入輸出

發布時間: 2022-01-20 13:18:33

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語言中如何輸入輸出字元串

在<string.h>頭文件中用字元串處理函數輸入和輸出,gest用來輸入,puts用來輸出。

字元串輸入函數gets,從鍵盤鍵入以回車結束的字元串放入字元數組中,並自動加』'。輸入串長度應小於字元數組維數,字元串中可以包含空格。

字元串輸出函數puts,向顯示器輸出字元串(輸出完,自動換行,即用' '替'')。字元數組必須以''結束。

示例代碼如下:

#include<string.h>

int main()

{

char str[40];

printf("請輸入字元串");

gets(str);

printf("請輸出字元串");

puts(str);

system("pause");

return 0;

}

(3)c語言輸入輸出擴展閱讀

在C中,對文件的操作分為兩種方式,即流式文件操作和I/O文件操作。

流式文件操作,這種方式的文件操作有一個重要的結構FILE,FILE在頭文件stdio.h中定義如下:

typedef struct {

int level; /* fill/empty level of buffer */

unsigned flags; /* File status flags */

char fd; /* File descriptor */

unsigned char hold; /* Ungetc char if no buffer */

int bsize; /* Buffer size */

unsigned char _FAR *buffer; /* Data transfer buffer */

unsigned char _FAR *curp; /* Current active pointer */

unsigned istemp; /* Temporary file indicator */

short token; /* Used for validity checking */

} FILE; /* This is the FILE object */

直接I/O文件操作,這是C提供的另一種文件操作,它是通過直接存/取文件來完成對文件的處理,此類文件操作常用的函數及其所用的一些符號在io.h和 fcntl.h中定義,在使用時要加入相應的頭文件。

④ C語言輸入輸出格式

在C語言中,輸入使用的是scanf函數,scanf函數的格式為scanf(格式控制,地址列表),如scanf("%d"&a)。

輸出使用的是printf()函數,printf函數的格式為printf(格式控制,輸出表列),如printf("%d ",a)。在輸出時可以在"%"和字母之間插進數字表示最大場寬。可以根據需要輸出數字的位數來決定「%」前的數值。

如:%3d表示輸出3位整型數, 不夠3位右對齊。

%9.2f 表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為7,小數點佔一位, 不夠9位右對齊。

%8s 表示輸出8個字元的字元串, 不夠8個字元右對齊。

(4)c語言輸入輸出擴展閱讀

C語言輸入輸出時的規則:

一、格式說明符個數與輸入數據個數不相等的情況:

當我們輸入數據時,只要沒有按回車鍵,所輸入的數據都還存放在緩沖區,並沒有存入變數中。按【Enter】鍵後,scanf()函數才會從緩沖區中取走數據。緩沖區是一個先進先出的隊列,即取走數據的時候,遵循先輸入的數據先取走的原則。

scanf函數的格式說明符有幾個就要取幾次數據,只要碰到格式說明符就必須把數據取走,至於是不是要把取走的數據存放起來,就得看數據列表中的數據個數。沒取完的數據繼續留在緩沖區中。

二、寬度輸出的情況:

1、在%和格式字元之間加入一個整數來控制輸出數據所佔寬度

2、在%和格式字元f之間加入一個「整數1.整數2」來控制輸出數據的格式。

整數1:整個輸出數據占的總寬度

整數2:輸出實數的小數部分的個數

注意:先用整數2處理小數部分,再用整數1處理整個數據,包括已處理好的小數部分

三、寬度輸入的情況:

寬度輸入指的是在%和格式說明符d之間加入一個整數。如:scanf("%2d", &x);

注意:

1、%d與%1d是不同的,它們具有不同的含義。

2、 當寬度小於數據的實際寬度時,截取指定寬度的部分作為一個數進入緩沖區,再將剩餘部分作為另一個數放入緩沖區。

⑤ c語言中有哪些輸出輸入語句

C語言本身不提供輸入輸出語句,它的輸入與輸出是由C語言函數庫中的一批「標准輸入輸出函數」來完成的。在調用「標准輸入輸出函數」時,要用到以「stdio.h」為名的頭文件,並以「#i nclude <stdio.h>」的方式放在源程序的開頭處。而文件名後綴「.h」是「head」的縮寫,「#i nclude」是預編譯命令。(當只調用「printf」函數和「scanf」函數時可以省略「#i nclude <stdio.h>」。 1字元輸入函數getchar()[getchar函數的功能和使用方法][功能]:從終端(或系統隱含指定的輸入設備)(一般指鍵盤)輸入一個字元,它的返回值為接受到的字元,也可以是一個整型數,即是該字元的ASCII碼。[一般格式]:getchar()[注意]:1、 getchar()函數只能接受一個字元;2、 要調用getchar()函數應在程序的開頭處加上預編譯命令;3、 getchar是一個無參函數,但後面的空括弧不能省; 2字元輸出函數putchar()[putchar函數的功能和使用方法][功能] putchar的作用是向終端(一般指顯示器)輸出一個字元[一般格式]:putchar(參數),「參數」通常為字元型變數、字元碼(整型變數)或字元本身。[注意]:(1)putchar(ch)函數只能輸出一個字元;參數如果是整型數,則輸出ASCII值為該數的字元。(2)要調用putchar(ch)函數也應在程序的開頭處加上預編譯命令#i nclude <stdio.h>;(3)putchar(ch)函數還能輸出一些控制字元;也能輸出其它轉義字元。例:輸入一行字元,計算該行字元中包含的字母,數字,空格及其它字元的個數。#i nclude<stdio.h>main(){ int letter=0,figure=0,blank=0,other=0; char c; printf("please input a string:"); while((c=getchar())!='\n')// 讀入字元,遇到回車時停止讀入 { if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))//如果讀入的為字母 letter++; else if(c>='1'&&c<='9')//如果讀入的為數字 figure++; else if(c==' ')//如果讀入的為空格 blank++; else //如果讀入的為其它字元 other++; } printf("The number of letter is %d\n",letter); printf("The number of figure is %d\n",figure); printf("The number of blank is %d\n",blank); printf("The number of other is %d\n",other);}

⑥ C語言輸入輸出字元串

ch【5】緩沖區過短,導致溢出,ch【5】中只存了 你輸入的前5個字元,限定輸入用scanf(「%5s」,ch)就行了,這樣ch中就是就是存的你數入的前5個字元,至於char ch;錯誤是因為格式化錯誤,即%s和ch不匹配,char ch【】在c語言中是不成立的,數組必須是定長的。

⑦ C語言輸入輸出函數

肯定是A
因為空格也算字元
C語言會將空格賦值給字元變數C1或C2

⑧ c語言編程,輸入輸出

在多個數中求素數,參考代碼如下:

#include<stdio.h>
intisprime(intn)
{
inti;
if(n<=1)return0;
for(i=2;i<n;++i)
if(n%i==0)return0;
return1;
}
intmain()
{
inta[49],b[49],na=0,nb=0,i,t;
for(i=0;i<49;++i){
scanf("%d",&t);
if(t==-1)break;
if(isprime(t))b[nb++]=t;
a[na++]=t;
}
printf("數組a的內容: ");
for(i=0;i<na;++i){
printf("%d",a[i]);
if((i+1)%5==0)
printf(" ");
}
printf(" 數組b的內容: ");
for(i=0;i<nb;++i){
printf("%d",b[i]);
if((i+1)%5==0)
printf(" ");
}
return0;
}
熱點內容
壓縮某個文件夾 發布:2024-11-15 09:03:11 瀏覽:891
網址能解壓嗎 發布:2024-11-15 08:54:09 瀏覽:933
python更改目錄 發布:2024-11-15 08:41:08 瀏覽:265
伺服器快閃記憶體可以裝在一般電腦上嗎 發布:2024-11-15 08:36:46 瀏覽:8
安卓手機怎麼查詢自己的路線軌跡 發布:2024-11-15 08:32:19 瀏覽:969
phpdatet 發布:2024-11-15 08:32:17 瀏覽:507
HDB3編解碼實驗 發布:2024-11-15 08:17:31 瀏覽:212
怪星球編程 發布:2024-11-15 08:15:55 瀏覽:844
慧編程價格 發布:2024-11-15 08:14:09 瀏覽:459
python多行注釋的快捷鍵 發布:2024-11-15 08:09:14 瀏覽:957