要做一個學生學籍管理系統,但是到文本輸入的時候輸進去了,txt文件也創建好了,打開文件就是一片空白,請各位幫幫忙,這是我的那一部分代碼
#include
#include
typedef struct Student{
long StudentID; //學生學號
char StudentName[4]; //學生名字
char StudentSex; //學生性別
int StudentScore; //學生成績
}STUDENT;
FILE *fp;
int find = 0; // 用於控制循環
char ch;//用於儲存命令
STUDENT student;//定義一個結構體變量
if ((fp = fopen ("StudentInformation.txt", "a") == NULL))
{
printf ("Failure to open student.txt\n");
exit(0);
}
else
{
// 錄入數據
while (find == 0)
{
do {
printf ("請輸入學生學號(9位數字,例:161110500):\n");
scanf ("%ld", &student.StudentID);
getchar();
printf ("請輸入學生姓名:(4個字以內)\n");
gets(&student.StudentName);
printf ("請輸入學生性別(男或女):\n");
scanf (" %c", &student.StudentSex);
getchar();
printf ("請輸入學生成績:\n");
scanf ("%d", &student.StudentScore);
printf ("是否輸入正確?(按Y正確,按N重輸)\n");
ch = getch();
system("cls");
} while (ch == 'N' || ch == 'n');
fprintf (fp, "%ld", student.StudentID);
fprintf (fp, "%s", student.StudentName);
fprintf (fp, "%c", student.StudentSex);
fprintf (fp, "%d", student.StudentScore);
printf ("是否繼續輸入下一個學生成績?(按Y繼續,按N返回)\n");
ch = getch();
if (ch == 'Y' || ch == 'y')
{
find = 0;
}
else if (ch == 'N' || ch == 'n')
{
find = 1;
}
else
{
printf ("輸入錯誤,即將返回\n");
find = 1;
}
}
}
我調了下你的程序,只是把if ((fp = fopen ("StudentInformation.txt", "a") == NULL))裡的fp = fopen()放到了外邊,可以出結果的呀。txt存到數據了