質問: fopen(argv[1], "r"))==NULL) { printf("ERROR"); break; } while (fgets(translated, 100, file) != NULL) { if (engDay=0){ } else if(engDay=1) fclose(file); return 0; } int engDay(void){ char engDay[100]; while ((fgets(engDay,sizeof(engDay),stdin))!=NULL){ } } int engMonth(void){ char engMonth[100]; while ((fgets(engMonth,sizeof(engMonth),stdin))!=NULL){ } } fgetsで一行丸ごとchar arrayに入れた後スペースごとに区切る方法がわからなくてつっかえてます。strncmpを曜日には使えるかなと思ったのですが、月にはdateの2語目で使えないので、スペースで区切ってcutみたいなことができないでしょうか? よろしくお願いします!
回答: translation.cでやることを書いておきます。 1.引数で入力された言語ファイルを開く 2.1行目を読み込んで、スペース区切りで分割し配列に入れる(曜日用配列 char dayofweek[7][100]) 3.2行目を読み込んで、スペース区切りで分割し配列に入れる(月用配列 char mon[12][100]) 4.言語ファイルをクローズ 5.標準入力から1行読み込む(dateコマンドの出力を読み込む) 6.曜日文字列(項目1)を取得し、Sun,Mon,...,Satの事前定義配列から位置(idx1)を求める(Monなら1) 7.月文字列(項目2)を取得し、Jan,Feb,...,Decの事前定義配列から位置(idx2)を求める(Janなら0) 8.項目3以降をそのまま保存(timestr: 11:11:11 EDT 2016) 9.結果を出力 printf("%s %s %s¥n", dayofweek[idx1], mon[idx2], timestr);