こんにちわ、
fuku です。
みなさん いかが お過ごしでしょうか。
雪、大丈夫でしたか。
こちらは、いつも通りの
冬日でした。;)
ところで、本題です。
「 FE, 解答、文脈 」
です。
さっき 気づいたのですが、
FE 午後問、例えば
C言語では、
int putSpace;
という 変数が 出ていました。
( 27年度 秋試験、午後 問9 )
これ、最初分からなかったのですが、
直訳すると、
「空白を 置く」
です。
要は、20字空白を いくつ 置いていくか、
という 事でした。
その計算に、細かい部分が 有るのですが。
ここは、論理ですね。;)
以外と、国語力
( 文脈、意味を知る )
ことも 大事では、と思いました。 ^^
サンプル プログラム
サンプル プログラム
#include <stdio.h>
#include <string.h>
FILE *logFile;
int logEOF = 0;
char cardID[5] = "----", date1[9] = "--------", time1[7] = "------",
door[3] = "--",dir[2] = "-", act[2] = "-", name[11] = "----------";
door[3] = "--",dir[2] = "-", act[2] = "-", name[11] = "----------";
char lastID[5] = "----";
void getRecord();
void putRecord();
int main()
{
logFile = fopen("Access.txt", "r");
getRecord();
while (logEOF != EOF){
putRecord();
getRecord();
}
fclose(logFile);
}
void getRecord(){
if (fscanf(logFile, "%4c %8c %6c %2c %1c %1c %10c\n",
cardID, date1, time1, door,dir, act, name) == EOF)
cardID, date1, time1, door,dir, act, name) == EOF)
{logEOF = EOF;}
}
void putRecord(){
int putSpace;
if (strcmp(cardID, lastID) == 0)
{printf("%18s", " ");}
else {
printf("%4s %10s ", cardID, name);
strcpy(lastID, cardID);}
putSpace = door[0] - '0' - 1;
while (0< putSpace--){
printf("%20s", " ");
}
printf("%.2s-%.2s %.2s:%.2s %2s ",
date1+4, date1+6, time1, time1+2, door);
date1+4, date1+6, time1, time1+2, door);
if (strcmp(act, "R") == 0){ printf("%s", "(R)");}
if (strcmp(dir, "I") == 0){ printf("%s\n", "IN");}
else { printf("%s\n", "OUT");}
}
サンプル C言語 データファイル
( Access.txt )
s001 20151018 090000 11 I A systemoper
( Access.txt )
s001 20151018 090000 11 I A systemoper
s001 20151018 091004 21 I A systemoper
s001 20151018 092008 31 I A systemoper
s001 20151018 093012 31 O A systemoper
s001 20151018 094016 21 O A systemoper
s001 20151018 095020 11 O A systemoper
v001 20151018 110048 12 I A visitor001
v001 20151018 111052 22 I R visitor001
v001 20151018 112056 12 O A visitor001