実現したいこと
- コマンド引数からデータを読み取り、格納する。
前提
C言語でデータを分析する課題をやっています。課題のためコマンドの入力を変えることができないです。
発生している問題・エラーメッセージ
コマンド引数を読み取りたいのですが、ファイルのタイトルに””が付いていることで正常にファイルを読み込むことができず、設定したエラー”Error: Data file not specified. Please include '--DATA' flag followed by file name.” が表示される。
該当のソースコード
C言語
試したこと
strcmpを使うのほかにsscanfでもやってみたのですが、結果は同じで、コマンド引数に””があると読み込めませんでした。
void parse_commandline(char *argv[]) {
char *data_file;
int question_num;
int n;
if (strcmp(argv[1], "--DATA") == 0) { data_file = argv[2]; } else { fprintf(stderr, "Error: Data file not specified. Please include '--DATA' flag followed by file name.\n"); exit(1); } if (strcmp(argv[3], "--QUESTION") == 0) { question_num = atoi(argv[4]); } else { fprintf(stderr, "Error: Question number not specified. Please include '--QUESTION' flag followed by a number.\n"); exit(1); } if (strcmp(argv[5], "--N") == 0) { n = atoi(argv[6]); } else { fprintf(stderr, "Error: 'n' value not specified. Please include '--N' flag followed by a number.\n"); exit(1); } // Print parsed arguments printf("Data file: %s\n", data_file); printf("Question number: %d\n", question_num); printf("n: %d\n", n); // Call appropriate function based on question number if (question_num == 1) { node_t *head = read_yaml(data_file); char **top_airlines = get_top_airlines(head, n); print_top_airlines(top_airlines, n); free_top_airlines(top_airlines, n); free_list(head); } else if (question_num == 2) { fprintf(stderr, "Here we are question_num == 2\n"); exit(1); node_t *head = read_yaml(data_file); char **top_airlines = get_top_airlines(head, n); print_top_airlines(top_airlines,n); free_top_airlines(top_airlines,n); free_list(head); } else if (question_num == 3) { fprintf(stderr, "Here we are question_num == 3\n"); exit(1); // node_t *head = read_yaml(data_file); // char **top_airlines = get_top_airlines(head,n); // print_top_airlines(top_airlines,n); // free_top_airlines(top_airlines,n); // free_list(head); } else { fprintf(stderr, "Error: Invalid question number. Please select question 1, 2, or 3.\n"); exit(1); }
}
回答1件
あなたの回答
tips
プレビュー