c
1 2 3#include <stdio.h> 4#include <stdlib.h> 5#pragma warning(disable: 4996) 6 7#define H_PRT 0x02// ヘッダ印字オプション 8#define C_PRT 0x01// 文字印字オプション 9#define ROW 16 // 1行に表示する文字 10#define TESTBUF 512 //テストデータ用のバッファ 11#define TEXTBUF 16 //テキストファイル用のバッファ 12 13//プロトタイプ宣言 14void dump(char* title, unsigned char* staddr, int offset, int dsize, char opt); 15 16//オプション 17typedef struct { 18 19 char* infilename; 20 char prt_charflag; 21 char prt_headerflag; 22 char prt_ 23 24} opts_t; 25 26 27//オプションの解析 28opts_analisys(int argc , char *argv, char opts) { 29 30 int cnt; 31 char slash ="/"; 32 33 for (cnt = 1; cnt < argc; cnt++) { 34 35 if (argv[cnt].Contains(slash)) { 36 37 38 switch(argv[cnt]) 39 case "/h" 40 break; 41 42 } 43 44 } 45 46} 47 48int main(int argc, char* argv[]) { 49 50 51 char txt_data[TEXTBUF]; // テキストファイル読み込み用 52 int readnum; 53 opts_t opts; 54 int result; 55 56 57 FILE* file; 58 59 if (opts.infilename != 0) { 60 file = fopen(opts.infilename, "rb"); 61 }else{ 62 file = stdin; 63 } 64 65 result = opts_analisys(argc, argv, &opts); 66 67 68 while (readnum = fread(txt_data, sizeof(unsigned char), TEXTBUF, file) > 0) { 69 70 dump("テキストファイル", txt_data, 0, TEXTBUF, C_PRT); 71 } 72 fclose(file); 73} 74
コマンドラインからもらった引数で(ファイル名、オプションなど) ダンプ出力したいと考えてます。
オプションの解析で
if (argv[cnt].Contains(slash)) {
switch(argv[cnt])
case "/h"
break;
上記の argv のところで
式には構造体または共用体型が必要です
case "/h" のところで
式は整数定数式である必要があります
原因が分からなかったのでアドバイス頂けると助かります
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/09 02:31
2019/08/09 02:44