c语言输出参数是out,关于C语言中的输出输入流
匿名用戶
1級
2010-01-23 回答
/********************
程序功能:
輸入學生信息,存盤,
并能按名字找對應的學生,找到則
輸出,否則輸出無此人
********************/
#include
#include
/*定義學生人數*/
#define N 3
/*名字和性別長度*/
#define NO 20
/****結構體存信息更多的信息隨便加****/
typedef struct student
{
char sname[NO];
char ssex[NO];
int snumber;
}stu;
/**輸出找到信息**/
void display(stu ss)
{
printf("information of student:\nname:\tsex:\tnumber:\n");
printf("%s %s %d\n", ss.sname, ss.ssex, ss.snumber);
}
/***************
處理輸入的字符,原因很多(主要是數組和指針的轉
換帶來的問題,這是比較底層的東西),如果少了這個
就會出錯,怪就怪系統函數做得不太好。
有些東西還是得自己出馬寫的
****************/
void do_Char(char *ch)
{
int i;
for (i = 0; i < NO; i++)
{
if (0 != ch[i] && '\0' != ch[i]);
else break;
}
if (NO == i)
{
i--;
}
ch[i] = '\0';
}
/****************************
讀取信息,即初始化存入文件*** gets(chname);
**************************/
void getInformation(stu s[])
{
FILE *pf = NULL;
char chname[NO];
char chsex[NO];
int number;
int i;
if (NULL == (pf = fopen("studenInformatio.txt", "wb")))
{
printf("fopen error !");
exit(0);
}
for (i = 0; i < N; i++)
{
printf("input the name:\tsex:\tnumber:\n");
gets(chname);
do_Char(chname);
gets(chsex);
do_Char(chsex);
scanf("%d", &number);
strcpy(s[i].sname, chname);
strcpy(s[i].ssex, chsex);
s[i].snumber = number;
fwrite(&s[i], sizeof(stu), 1, pf);
display(s[i]);
/********************
清空綬存的,這也是系統函數的原因,如果少了這個
就會把上次輸入的回車作為下次還要輸入的內容,這個也
是沒辦法的,不信你自己改下,會令人想不通的東西出現在你面前
***********************/
flushall();
}
fclose(pf);
}
/****按名字查找****/
void find()
{
FILE *pf = NULL;
char chname[N];
stu s[N];
int i;
if (NULL == (pf = fopen("studenInformation.txt", "rb")))
{
printf("fopen error !");
exit(0);
}
for (i = 0; i < N; i++)
{
fread(&s[i], sizeof(stu), 1, pf);
}
for (i = 0; i < N; i++)
display(s[i]);
printf("input the name of you will find:\n");
scanf("%s", chname);
for (i = 0; i < N; i++)
{
if (0 == strcmp(s[i].sname, chname))
{
display(s[i]);
break;
}
}
if (N == i)
{
printf("not find this struden.\n");
}
fclose(pf);
}
/***驅動程序***/
void main()
{
stu st[N];
getInformation(st);
find();
getch();
}
已通過上機,這里說下,不要相信庫函數總是最好的.
希望你也有同感,如果要我舉例那又會是幾百字以上的東西了.
你多做幾個大一點的(500行左右)程序就知道了.
上千行你會發現更多你沒見過書上從來沒有的東西.
總結
以上是生活随笔為你收集整理的c语言输出参数是out,关于C语言中的输出输入流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言无视数据类型字符串存储,C语言基础
- 下一篇: 流水调度问题c语言,基于遗传算法的流水车