#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 2
typedef struct
{
char name[10];
char num[10];
float c;
}stu;
void input();
void menu();
int main()
{
FILE *fp;
if((fp=fopen("d:\\作業\\C語言成績記錄簿\\c語言txt","wb"))==NULL)
{
printf("\nopen file error");
getchar();
exit(1);
}
char ch;
while(1)
{
menu();// 顯示選單
ch=getchar();//選擇選單
if(ch=='0')
break;
switch(ch)//判斷功能項
{
case'1': input();break;
}
}
printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");
return 0;
}
void input()
{
FILE *fp;
int i=0;
stu xs[N]; /*定義一個結構體變數來裝從檔案中讀出來的資料*/
if((fp=fopen("d:\\作業\\C語言成績記錄簿\\c語言.txt","wb"))==NULL)
{
printf("\nopen file error");
getchar();
exit(1);
printf("\n錄入格式: 姓名 學號 C語言 \n");
printf("當輸入姓名為 end 結束錄入\n");
while(1)
{
scanf("%s",&xs[i].name);
if(strcmp(xs[i].name,"end")==0) break; //判斷姓名是否為LAST,用字串判斷
scanf("%s%f",&xs[i].num,&xs[i].c);
fprintf(fp,"%s%s%f",xs[i].c,xs[i].num,xs[i].c);
i++; //將成績資訊寫入檔案
}
fclose(fp);
}
}
void menu()
{
system("cls"); //清屏
printf("\n\n\n\n\t\t\t********* c語言成績記錄薄 ***********\n");
printf("\t\t\t|==========================================|\n");
printf("\t\t\t|*************1. 錄入資訊 ***************|\n");
printf("\t\t\t|*************2. 查詢成績 ***************|\n");
printf("\t\t\t|*************3. 修改資訊 ***************|\n");
printf("\t\t\t|*************4. 添加學生 ***************|\n");
printf("\t\t\t|*************5. 洗掉成績 ***************|\n");
printf("\t\t\t|*************6. 顯示成績 ***************|\n");
printf("\t\t\t|*************7. 統計 ***************|\n");
printf("\t\t\t|*************0. 退出 ***************|\n");
printf("\t\t\t|==========================================|\n");
printf("\t\t\t|******************************************|\n");
printf("\n\n\t\t\t 請選擇相應的功能<輸入編號>:");
}
uj5u.com熱心網友回復:
//錄入資訊
void input() {
FILE *fp;
stu xs; /*定義一個結構體變數來裝從檔案中讀出來的資料*/
if((fp=fopen("d:\\作業\\C語言成績記錄簿\\c語言txt","wb"))==NULL) {
printf("\nopen file error");
getchar();
exit(1);
}
printf("\n錄入格式: 姓名 學號 C語言 \n");
printf("當輸入姓名為 end 結束錄入\n");
while(1) {
scanf("%s",xs.name);
if(strcmp(xs.name,"end")==0) break; //判斷姓名是否為LAST,用字串判斷
scanf("%s%f",&xs.num,&xs.c);
fprintf(fp,"%s%s%f",xs.name,xs.num,xs.c); //將成績資訊寫入檔案
}
fclose(fp);
}
uj5u.com熱心網友回復:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 2
typedef struct
{
char name[10];
char num[10];
float c;
}stu;
void input();
void menu();
int main()
{
FILE *fp;
if((fp=fopen("d:\\作業\\C語言成績記錄簿\\c語言txt","wb"))==NULL)
{
printf("\nopen file error");
getchar();
exit(1);
}
//char ch;
int ch;
while(1)
{
menu();// 顯示選單
//ch=getchar();//選擇選單
scanf("%d", &ch);
//if(ch == '0')
if(ch == 0)
break;
//printf("ch = %d\n", ch);
switch(ch)//判斷功能項
{
//case'1': input();break;
case 1: input();break;
}
}
printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");
return 0;
}
void input()
{
FILE *fp;
int i=0;
//puts("helloworld!\n");
stu xs[N]; /*定義一個結構體變數來裝從檔案中讀出來的資料*/
if((fp=fopen("d:\\作業\\C語言成績記錄簿\\c語言.txt","wb"))==NULL)
{
printf("\nopen file error");
getchar();
exit(1);
}
printf("\n錄入格式: 姓名 學號 C語言 \n");
printf("當輸入姓名為 end 結束錄入\n");
while(1)
{
//scanf("%s",&xs[i].name);
scanf("%s", xs[i].name);
if(strcmp(xs[i].name,"end")==0) break; //判斷姓名是否為LAST,用字串判斷
//scanf("%s%f",&xs[i].num,&xs[i].c);
scanf("%s%f", xs[i].num, &xs[i].c);
//fprintf(fp,"%s%s%f", xs[i].c,xs[i].num,xs[i].c);
fprintf(fp,"%s%s%f", xs[i].name,xs[i].num,xs[i].c);
i++; //將成績資訊寫入檔案
}
fclose(fp);
//}
}
void menu()
{
system("cls"); //清屏
printf("\n\n\n\n\t\t\t********* c語言成績記錄薄 ***********\n");
printf("\t\t\t|==========================================|\n");
printf("\t\t\t|*************1. 錄入資訊 ***************|\n");
printf("\t\t\t|*************2. 查詢成績 ***************|\n");
printf("\t\t\t|*************3. 修改資訊 ***************|\n");
printf("\t\t\t|*************4. 添加學生 ***************|\n");
printf("\t\t\t|*************5. 洗掉成績 ***************|\n");
printf("\t\t\t|*************6. 顯示成績 ***************|\n");
printf("\t\t\t|*************7. 統計 ***************|\n");
printf("\t\t\t|*************0. 退出 ***************|\n");
printf("\t\t\t|==========================================|\n");
printf("\t\t\t|******************************************|\n");
printf("\n\n\t\t\t 請選擇相應的功能<輸入編號>:");
}
供參考~
不一定沒進入input函式,建議在函式的第一句加一條列印看看是否執行。你認為沒進入,可能是input函式里的if判斷沒滿足吧。
uj5u.com熱心網友回復:
供參考:#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <direct.h> //用 mkdir()創建一個檔案夾(目錄)
#include <io.h>
#define N 10
typedef struct
{
char name[10];
char num[10];
float c;
}stu;
void input();
void menu();
int main()
{
FILE *fp;
if((fp=fopen("d:\\作業\\C語言成績記錄簿\\c語言txt","r"))==NULL)
{
char *fileName="d:\\作業\\C語言成績記錄簿\\c語言txt",*tag; //printf("\nopen file error\n");
for(tag=fileName;*tag;tag++) //getchar();
{ //exit(1);
if (*tag=='\\')
{
char buf[1000],path[1000];
strcpy(buf,fileName);
buf[strlen(fileName)-strlen(tag)+1]=NULL;
strcpy(path,buf);
if(access(path,6)==-1)
mkdir(path); //用 mkdir()創建一個檔案夾(目錄)
}
}
}
fclose(fp);
fp = NULL;
char ch;
while(1)
{
menu();// 顯示選單
ch=getchar();//選擇選單
if(ch=='0')
break;
switch(ch)//判斷功能項
{
case'1': input();break;
}
}
printf("\n\n\n\t\t\t\tWelcome to use,Goodbye!\02!\n");
return 0;
}
void input()
{
FILE *fp;
int i=0;
stu xs[N];/*定義一個結構體變數來裝從檔案中讀出來的資料*/
char ch[10];
if((fp=fopen("d:\\作業\\C語言成績記錄簿\\c語言.txt","wb+"))== NULL)
{
printf("\nopen file error\n");
exit(1);
}
printf("\n錄入格式: 姓名 學號 C語言 \n");
printf("當輸入姓名為 end 結束錄入\n");
while(1)
{
scanf("%s",ch);//scanf("%s",&xs[i].name);
if(strcmp(ch,"end")==0) break;//判斷姓名是否為LAST,用字串判斷
strcpy(xs[i].name,ch);
scanf("%s%f",xs[i].num,&xs[i].c);
fprintf(fp,"%s%s%f ",xs[i].name,xs[i].num,xs[i].c);//fprintf(fp,"%s%s%f",xs[i].c,xs[i].num,xs[i].c);
i++; //將成績資訊寫入檔案
}
fclose(fp);
//}
fp = NULL;
}
void menu()
{
system("cls"); //清屏
printf("\n\n\n\n\t\t\t********* c語言成績記錄薄 ***********\n");
printf("\t\t\t|==========================================|\n");
printf("\t\t\t|*************1. 錄入資訊 ***************|\n");
printf("\t\t\t|*************2. 查詢成績 ***************|\n");
printf("\t\t\t|*************3. 修改資訊 ***************|\n");
printf("\t\t\t|*************4. 添加學生 ***************|\n");
printf("\t\t\t|*************5. 洗掉成績 ***************|\n");
printf("\t\t\t|*************6. 顯示成績 ***************|\n");
printf("\t\t\t|*************7. 統計 ***************|\n");
printf("\t\t\t|*************0. 退出 ***************|\n");
printf("\t\t\t|==========================================|\n");
printf("\t\t\t|******************************************|\n");
printf("\n\n\t\t\t 請選擇相應的功能<輸入編號>:");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/248672.html
標籤:C語言
上一篇:VS2017如何連接需要跳轉的服進行linux遠程除錯?
下一篇:多個傳感器的檢測執行緒怎么寫
