#include
余杭網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,余杭網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為余杭超過(guò)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的余杭做網(wǎng)站的公司定做!
main()
struct?
int num;
char name[20];??
char sex;??
int age;??
stu[5];??
int i;
for(i=0;i5;i++)
printf("請(qǐng)輸入信息\n");
scanf("%d",stu[i].num);??
scanf("%s",stu[i].name);??
scanf("%c",stu[i].sex);? ? //在%c之前加一個(gè)空格
scanf("%d",stu[i].age);
for(i=0;i5;i++)
printf(? "*%s*",stu[i].name);
擴(kuò)渣攜展資料:空梁粗
函數(shù) scanf() 是從標(biāo)準(zhǔn)輸入流stdin?[1]??(標(biāo)準(zhǔn)輸入設(shè)備,一般指向鍵盤(pán))中讀內(nèi)容的通用子程序,可以說(shuō)明的格式讀入多個(gè)字符,并保存在對(duì)應(yīng)地址的變量中。
函數(shù)斗鎮(zhèn)的第一個(gè)參數(shù)是格式字符串,它指定了輸入的格式,并按照格式說(shuō)明符解析輸入對(duì)應(yīng)位置的信息并存儲(chǔ)于可變參數(shù)列表中對(duì)應(yīng)的指針?biāo)肝恢?。每一個(gè)指針要求非空,并且與字符串中的格式符一一順次對(duì)應(yīng)。
參考資料來(lái)源:百度百科-scanf
字符讀寫(xiě)函數(shù)fgetc和fputc
字符讀寫(xiě)函數(shù)是以字符(字節(jié))為單位的讀寫(xiě)函數(shù)。 每次可從文件讀出或向文件寫(xiě)入一個(gè)字符。
1. 讀字符函數(shù)fgetc
fgetc函數(shù)的功能是從指定的文件中讀一個(gè)字符,函數(shù)調(diào)用的形式為:
字符變量=fgetc(文件指針);
例如:
ch=fgetc(fp);
其意義是從打開(kāi)的文件fp中讀取一個(gè)字符并送入ch中。
對(duì)于fgetc函數(shù)的使用有以下幾點(diǎn)說(shuō)明:
1) 在fgetc函數(shù)調(diào)用中,讀取的文件必須是以讀或讀寫(xiě)方式打開(kāi)的。
2) 讀取字符的結(jié)果也可以不向字符變量賦值,
例如:
fgetc(fp);
但是讀出的字符不能保存。
3) 在文件內(nèi)部有一個(gè)位置指針。用來(lái)指向文件的當(dāng)前讀寫(xiě)字節(jié)。在文件打開(kāi)時(shí),該指針總是指向文件的第一個(gè)字節(jié)。使用fgetc 函數(shù)后,該位置指針將向后移動(dòng)一個(gè)字節(jié)。 因此可連續(xù)多次使用fgetc函數(shù),讀取多個(gè)字符。應(yīng)注意文件指針和文件內(nèi)部的位置指針不是一回事。文件指針是指向整個(gè)文件的,須在程序中定義說(shuō)明,只要不重新首棚賦值,文件指針的值是不變的。文件內(nèi)部的位置指針用以指示文件內(nèi)部的當(dāng)前讀寫(xiě)位置,每讀寫(xiě)一次,該指針均向后移動(dòng),它不需在程序中定義說(shuō)明,而是由系統(tǒng)自動(dòng)設(shè)置的。
讀入文件c1.doc,在屏幕上輸出。
#includestdio.h
main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\jrzh\\example\\c1.txt","rt"))==NULL)
{
printf("\nCannot open file strike any key exit!");
getch();
exit(1);
}
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}
本例程序的功能是從文件中逐個(gè)讀取字符,在屏幕上顯示。程序定義了文件指針fp,以讀文本文件方式打開(kāi)文件“d:\\jrzh\\example\\ex1_1.c”,并使fp指向該文件。如打開(kāi)文件蘆念出錯(cuò),給出提示并退出程序。程序第12行先讀出一個(gè)字符,然后進(jìn)入循環(huán),只要讀出的字符不是文件結(jié)束標(biāo)志(每個(gè)文件末有一結(jié)束標(biāo)志EOF)就把該字符顯示在屏幕上,再讀入下一字符。每讀一次,文件內(nèi)部的位置指針向后移動(dòng)一個(gè)字符,文件結(jié)束時(shí),該指針指向EOF。執(zhí)行本程序?qū)@示整個(gè)文件。
2. 寫(xiě)字符函數(shù)fputc
fputc函數(shù)的功能是把一個(gè)字符寫(xiě)入指定的文件中,函數(shù)調(diào)用的形式為:
fputc(字符量,文件指針);
其中,待寫(xiě)入的字符量可以是字符常量或變量,例如:
fputc('a',fp);
其意義是把字符a寫(xiě)入fp所指向的文件中。
對(duì)于fputc函數(shù)的使用也要說(shuō)明幾點(diǎn):
1) 被寫(xiě)入的文件可以用寫(xiě)、讀寫(xiě)、追加方式打開(kāi),用寫(xiě)或讀寫(xiě)方式打開(kāi)一個(gè)已存在的文件時(shí)將清除原有的文件內(nèi)容,寫(xiě)入字符從文件首開(kāi)始。如需保留原有文件內(nèi)容,希望陪芹困寫(xiě)入的字符以文件末開(kāi)始存放,必須以追加方式打開(kāi)文件。被寫(xiě)入的文件若不存在,則創(chuàng)建該文件。
2) 每寫(xiě)入一個(gè)字符,文件內(nèi)部位置指針向后移動(dòng)一個(gè)字節(jié)。
3) fputc函數(shù)有一個(gè)返回值,如寫(xiě)入成功則返回寫(xiě)入的字符,否則返回一個(gè)EOF??捎么藖?lái)判斷寫(xiě)入是否成功。
從鍵盤(pán)輸入一行字符,寫(xiě)入一個(gè)文件,再把該文件內(nèi)容讀出顯示在屏幕上。
#includestdio.h
main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\jrzh\\example\\string","wt+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string:\n");
ch=getchar();
while (ch!='\n')
{
fputc(ch,fp);
ch=getchar();
}
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
程序中第6行以讀寫(xiě)文本文件方式打開(kāi)文件string。程序第13行從鍵盤(pán)讀入一個(gè)字符后進(jìn)入循環(huán),當(dāng)讀入字符不為回車(chē)符時(shí),則把該字符寫(xiě)入文件之中,然后繼續(xù)從鍵盤(pán)讀入下一字符。每輸入一個(gè)字符,文件內(nèi)部位置指針向后移動(dòng)一個(gè)字節(jié)。寫(xiě)入完畢,該指針已指向文件末。如要把文件從頭讀出,須把指針移向文件頭,程序第19行rewind函數(shù)用于把fp所指文件的內(nèi)部位置指針移到文件頭。第20至25行用于讀出文件中的一行內(nèi)容。
把命令行參數(shù)中的前一個(gè)文件名標(biāo)識(shí)的文件,復(fù)制到后一個(gè)文件名標(biāo)識(shí)的文件中, 如命令行中只有一個(gè)文件名則把該文件寫(xiě)到標(biāo)準(zhǔn)輸出文件(顯示器)中。
#includestdio.h
main(int argc,char *argv[])
{
FILE *fp1,*fp2;
char ch;
if(argc==1)
{
printf("have not enter file name strike any key exit");
getch();
exit(0);
}
if((fp1=fopen(argv[1],"rt"))==NULL)
{
printf("Cannot open %s\n",argv[1]);
getch();
exit(1);
}
if(argc==2) fp2=stdout;
else if((fp2=fopen(argv[2],"wt+"))==NULL)
{
printf("Cannot open %s\n",argv[1]);
getch();
exit(1);
}
while((ch=fgetc(fp1))!=EOF)
fputc(ch,fp2);
fclose(fp1);
fclose(fp2);
}
本程序?yàn)閹⒌膍ain函數(shù)。程序中定義了兩個(gè)文件指針fp1和fp2,分別指向命令行參數(shù)中給出的文件。如命令行參數(shù)中沒(méi)有給出文件名,則給出提示信息。程序第18行表示如果只給出一個(gè)文件名,則使fp2指向標(biāo)準(zhǔn)輸出文件(即顯示器)。程序第25行至28行用循環(huán)語(yǔ)句逐個(gè)讀出文件1中的字符再送到文件2中。再次運(yùn)行時(shí),給出了一個(gè)文件名,故輸出給標(biāo)準(zhǔn)輸出文件stdout,即在顯示器上顯示文件內(nèi)容。第三次運(yùn)行,給出了二個(gè)文件名,因此把string中的內(nèi)容讀出,寫(xiě)入到OK之中??捎肈OS命令type顯示OK的內(nèi)容。
字符串讀寫(xiě)函數(shù)fgets和fputs
1. 讀字符串函數(shù)fgets
函數(shù)的功能是從指定的文件中讀一個(gè)字符串到字符數(shù)組中,函數(shù)調(diào)用的形式為:
fgets(字符數(shù)組名,n,文件指針);
其中的n是一個(gè)正整數(shù)。表示從文件中讀出的字符串不超過(guò) n-1個(gè)字符。在讀入的最后一個(gè)字符后加上串結(jié)束標(biāo)志'\0'。
例如:
fgets(str,n,fp);
的意義是從fp所指的文件中讀出n-1個(gè)字符送入字符數(shù)組str中。
從string文件中讀入一個(gè)含10個(gè)字符的字符串。
#includestdio.h
main()
{
FILE *fp;
char str[11];
if((fp=fopen("d:\\jrzh\\example\\string","rt"))==NULL)
{
printf("\nCannot open file strike any key exit!");
getch();
exit(1);
}
fgets(str,11,fp);
printf("\n%s\n",str);
fclose(fp);
}
本例定義了一個(gè)字符數(shù)組str共11個(gè)字節(jié),在以讀文本文件方式打開(kāi)文件string后,從中讀出10個(gè)字符送入str數(shù)組,在數(shù)組最后一個(gè)單元內(nèi)將加上'\0',然后在屏幕上顯示輸出str數(shù)組。輸出的十個(gè)字符正是例13.1程序的前十個(gè)字符。
對(duì)fgets函數(shù)有兩點(diǎn)說(shuō)明:
1) 在讀出n-1個(gè)字符之前,如遇到了換行符或EOF,則讀出結(jié)束。
2) fgets函數(shù)也有返回值,其返回值是字符數(shù)組的首地址。
2. 寫(xiě)字符串函數(shù)fputs
fputs函數(shù)的功能是向指定的文件寫(xiě)入一個(gè)字符串,其調(diào)用形式為:
fputs(字符串,文件指針);
其中字符串可以是字符串常量,也可以是字符數(shù)組名,或指針變量,例如:
fputs(“abcd“,fp);
其意義是把字符串“abcd”寫(xiě)入fp所指的文件之中。
在前例中建立的文件string中追加一個(gè)字符串。
#includestdio.h
main()
{
FILE *fp;
char ch,st[20];
if((fp=fopen("string","at+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("input a string:\n");
scanf("%s",st);
fputs(st,fp);
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);
}
本例要求在string文件末加寫(xiě)字符串,因此,在程序第6行以追加讀寫(xiě)文本文件的方式打開(kāi)文件string。然后輸入字符串,并用fputs函數(shù)把該串寫(xiě)入文件string。在程序15行用rewind函數(shù)把文件內(nèi)部位置指針移到文件首。再進(jìn)入循環(huán)逐個(gè)顯示當(dāng)前文件中的全部?jī)?nèi)容。
如果對(duì)您有幫助,請(qǐng)記得采納為滿意答案,謝謝!祝您生活愉快!
你只需要建立一個(gè)數(shù)組,將數(shù)組建立的大一點(diǎn),然后分兩次輸入數(shù),構(gòu)建一個(gè)數(shù)組,在整體排序輸出就行了
void??insert(?int?a[?],?int??n,?int??number?)
{
for?(int?i=0;in;i++)
{
則槐if?(a[i]number)
continue;
else?
{
for?(int?j=n;ji;j--)
{
衫宏???????????a[j]=a[j-1];
}
孫塌友????????a[i]=number;
break;
}
}
if?(i==n)
a[i]=number;
}
當(dāng)前題目:c語(yǔ)言導(dǎo)入數(shù)組的函數(shù) c語(yǔ)言導(dǎo)入數(shù)組的函數(shù)有哪些
文章鏈接:http://vcdvsql.cn/article0/ddpioio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計(jì)、微信公眾號(hào)、小程序開(kāi)發(fā)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
全網(wǎng)營(yíng)銷(xiāo)推廣知識(shí)