問題があります。次のような内容のテキスト ファイル studenti.txt を作成しました。
- Gatis Lietnieks 15.06.1993 v
- ビズマ・カレスニカ 20.08.1991 s
- カトリーナ・サボーン 06.12.1992 秒
- Haralds Burkovskis 01.02.1989 v
- Jezups Martinovs 02.05.1990 v
- ビズマ・ジグルデ 1988.09.16
- Stasija Balode 12.12.1993 s
- Jānis Bērziņš 13.03.1992 v
- Zigurds Ritms 16.05.1991 v
- Pauls Zirdzins 12.11.1989 v
- Zane Skarbule 28.12.19990 s
- Aiga Bulle 11.08.1993 s
- アンドレイス・フォムキンス 11.06.1989 v
- Maikls Dzordans 08.01.1988 v
そして、このファイルを読み込んで、ファイルの内容をCプログラムで印刷したいと思います。私のコードは次のようなものです:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
#define N 16
int main()
{
FILE *fails_st;
struct date
{ int da_year;
int da_month;
int da_day;
};
struct studenti
{
int Nr;
char name[25];
char surname[25];
struct date dzd;
char dzimums[10];
} students[N];
int i, j;
system("cls");
fails_st = fopen("studenti.txt", "r");
for(i=0; i<N; i++)
{
fscanf(fails_st, "%d", students[i].Nr);
fgets(students[i].name, strlen(students[i].name)+1, fails_st);
fgets(students[i].surname, strlen(students[i].surname)+1, fails_st);
fscanf(fails_st, "%d", students[i].dzd.da_day);
fscanf(fails_st, "%d", students[i].dzd.da_month);
fscanf(fails_st, "%d", students[i].dzd.da_year);
fgets(students[i].dzimums, strlen(students[i].dzimums)+1, fails_st);
}
fclose(fails_st);
system("cls");
printf("Student list\n");
for(i=0; i<N; i++)
printf("%4d%15s%15s%d%d%d%%4s\n", students[i].Nr,
students[i].name, students[i].surname,
students[i].dzd.da_day,students[i].dzd.da_month,students[i].dzd.da_year,students[i].dzimums);
getch();
return 0;
}
しかし、プログラムを実行すると、「myfilename.exe が動作を停止しました.....」と停止するだけで、コードのどこに間違いがあるのか 疑問に思っています。