C語言輸入輸出函數(shù)有很多,bai標(biāo)準(zhǔn)I/O函數(shù)du中包含了如下幾個常用的函數(shù):

左權(quán)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),左權(quán)網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為左權(quán)上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的左權(quán)做網(wǎng)站的公司定做!
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int scanf(const char *format, arg_list)
scanf主要從標(biāo)準(zhǔn)zhi輸入流中獲取dao參數(shù)值,format為指定的參數(shù)格式及參數(shù)類型,如scanf("%s,%d",str,icount);
它要求在標(biāo)準(zhǔn)輸入流中輸入類似"son of bitch,1000"這樣的字符串,同時程序會將"son of bitch"給str,1000給icount.
scanf函數(shù)的返回值為int值,即成功賦值的個數(shù),在上例中如果函數(shù)調(diào)用成功,則會返回2,所以我們在寫程序時,可以通過
語句if(scanf("%s,%d",str,icount) != 2){...}來判斷用戶輸入是否正確.
int printf(const char *format, arg_list)
printf主要是將格式化字符串輸出到標(biāo)準(zhǔn)輸出流中,在stdio.h頭文件中定義了標(biāo)準(zhǔn)的輸入和輸出,分別是stdin,stdout.
arg_list可以是變量名,也可以是表達(dá)式,但最終都會以值的形式填充進(jìn)format中.
int getc(FILE *fp)
getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結(jié)束的語句為:(ch = getc(fp)) != EOF.EOF為文件結(jié)束標(biāo)志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當(dāng)fp為stdin
時,getc(stdin)就等同于getchar()了.
int putc(int ch,FILE *fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int getchar(void)
getchar主要是從標(biāo)準(zhǔn)輸入流讀取一個字符.默認(rèn)的標(biāo)準(zhǔn)輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個一個的讀字符.當(dāng)然也可以在while循環(huán)中指定終止字符,如下面的語句:
while ((c = getchar()) != '#')這是以#來結(jié)束的.
int putchar(int ch)
putchar(ch)主要是把字符ch寫到標(biāo)準(zhǔn)流stdout中去.
char * gets(char *str)
gets主要是從標(biāo)準(zhǔn)輸入流讀取字符串并回顯,讀到換行符時退出,并會將換行符省去.
int puts(char *str)
puts主要是把字符串str寫到標(biāo)準(zhǔn)流stdout中去,并會在輸出到最后時添加一個換行符.
char *fgets(char *str, int num, FILE *fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)
不大于num-1.因為fgets函數(shù)會在末尾加上一個空字符以構(gòu)成一個字符串.另外fgets在讀取到換行符后不會將其省略.
int fputs(char *str, file *fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時并不添加換行符.
int fgetc(FILE *fp)
fgetc從fp的當(dāng)前位置讀取一個字符.
int fputc(int ch, file *fp)
fputc是將ch寫入fp當(dāng)前指定位置.
int fscanf(FILE *fp, char *format,...)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int fprintf(FILE *fp, char *format,...)
fprintf將格式化數(shù)據(jù)寫入流式文件中.
1)輸入單個字符:getc,getchar,getch(不會在屏幕顯示輸入字符)
2) 輸出單個字符:putc
3) 輸入一串字符(可以有空格,Tab 等): gets
4) 輸出一串字符(可以有空格,Tab 等): puts
5) 標(biāo)準(zhǔn)輸入:scanf(可以輸入數(shù)字,字符,字符串等。輸入以空白字符分割)
6) 標(biāo)準(zhǔn)輸出:printf(可以格式花輸出數(shù)字,字符,字符串等。)
文件輸入輸出:
在上面的輸入輸出函數(shù)(除了 getchar,getch)前面加上 f,比如fgetc,fputc,fscanf,fprintf,就是文件輸入輸出函數(shù)了。
#includeiostream
#includealgorithm
#includestring.h
using namespace std;
#define NUM 100
struct Str{char str[20];};
bool cmp(Str a,Str b)
{
return strcmp(a.str,b.str)0;
}
int main()
{
int n;
Str str[NUM];
scanf("%d%*c",n);//輸入人的個數(shù)
for(int i=0;in;i++)
gets(str[i].str);//依次輸入每個人的姓名,用回車鍵隔開
sort(str,str+n,cmp);
printf("排序后:\n");
for(int i=0;in;i++)
puts(str[i].str);
return 0;
}
這樣子可以嗎?
getc():
調(diào)用方式:int getc(FILE *stream)
它返回指定輸入流stream的當(dāng)前位置的下一個字符,并增加文件的位置指示器.
getch():
調(diào)用方式:int getch(void)
getch()從控制臺讀取一個字符,但不把該字符顯示在屏幕上,也就是不回顯.
getche():
調(diào)用方式:int getche(void)
getche()從控制臺讀取一個字符,把該字符顯示在屏幕上,也就是回顯.
getchar():
調(diào)有方式:int getchar(void)
getchar()從控制臺讀取一個字符,并回顯,它和getch(),getche()的不同在于,它等到輸入一個回車才結(jié)束,就算你輸入了一個字符串,它也只取其中的第一個字符.
getchar()頭文件為string.h,即需有# includestring.h
其他的頭文件為conio.h
呃,你可以使用追問嗎~我這太不方便了,請問你用的什么編譯器?
呃,這樣子啊,對gcc我不清楚了就,也許其不支持或者文件庫不一樣,你可以針對查查,
在vc中我試了沒有問題。。。
這段代碼沒有問題
你需要檢查一下鏈表的數(shù)據(jù)內(nèi)容,在調(diào)用本函數(shù)前,用輸出語句先遍歷一下鏈表看一下內(nèi)容吧,估計是建表有問題,或是輸入的數(shù)據(jù)存儲不正確。
#include stdio.h
#include stdlib.h
#define N 2
struct biao
{
char name[15];
char number[10];
} tongxun[N];
void luru()//輸入電話號碼函數(shù)
{
int i;
for (i = 0; i N; i++)
{
? printf("請輸入姓名,號碼\n");
? scanf("%s%s", tongxun[i].name, tongxun[i].number);
}
}
search ()//查詢函數(shù)
{
int j, m, ncount = -1;
char temp[15];
printf("請輸入要查找的姓名:\n");
scanf("%s", temp);
for (j = 0; j N; j++)
{
? if (strcmp(tongxun[j].name, temp) == 0)
? ? ? ncount = j;
}
if (ncount != -1)
? printf("找到%s,號碼是%s\n", temp, tongxun[ncount].number);
else
? printf("沒有找到!\n");
for (m = 0; m N; m++)
? printf("%s\t%s\t", tongxun[m].name, tongxun[m].number);
}
void main()
{
luru();
search();
}
當(dāng)前文章:C語言輸入電話函數(shù),C輸入函數(shù)
標(biāo)題來源:http://chinadenli.net/article39/dsgpcsh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、移動網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)