typedef列挙型の日付をtypedef構造体データに保存します。typedef enum to typedefstruct
私のコードは、私が(..風邪、曇り、明確な)言葉に番号を変更する方法を知っていると、出力ファイルに出力しません
typedef enum weather {
clear = 1,
cloudy,
cold,
rainy,
stormy
}Weather;
typedef struct diary {
time_t date;
Weather weather;
char contents[MAX];
}Diary;
void save(FILE *pFile, Diary*da) {
fprintf(pFile, " %s %s \n",da->date,da->contents);
}
void in(Diary*da) {
int _weather;
puts("Enter the current date(YYYY-MM-DD) : ");
scanf("%s", &da->date);
getchar();
puts("Enter the current weather, (1) Clear (2) Cloudy (3) Cold (4) Rainy (5) Stormy : ");
scanf("%d", &_weather);
getchar();
puts("Enter the contents");
scanf("%79s", da->contents);
getchar();
}
です。
正確に 'time_t'データ型とは何ですか? 入力した日付を印刷できません。
getWeatherName(&da->weather)
ワードマッチングを返します。
const char* const WEATHER_STRINGS[5] = { "Clear", "Cloudy", "Cold", "Rainy", "Stormy" };
const char* getWeatherName(int weatherIdx)
{
return WEATHER_STRINGS[weatherIdx];
}
は、その後、あなたがこのような関数を呼び出すことができます。
「言葉に番号を変更する方法を」。 'switch(_weather)'?それは基本的な方法です。よりスマートな方法は、入力番号から導かれたインデックス(すなわちルックアップテーブル)を持つ文字列の配列を持つことです。 – kaylum
すべてのご質問はC本に記載されています。あなたの**具体的な**問題が何であるかははっきりしていません。 [ask]を読んで助言に従ってください。アンダースコアで始まる名前は実装のために予約されています。それらを使用しないでください。 – Olaf
検索してみてください(無料です)。 [特定の形式でtime_tを出力するには?](http://stackoverflow.com/questions/18422384/how-to-print-time-t-in-a-specific-format) – kaylum