Question: Starter Code: #include #include #include #include #define error ( m , c ) do { fprintf ( stderr , % s , m
Starter Code:
#include
#include
#include
#include
#define errorm c dofprintfstderrs
m;exitc;while
typedef enum
NONE
CLEAR
HEX
SCIENTIFIC
TRUNCATED
flags;
char stripchar input
char rv charmallocstrleninput;
int left, right;
forleft right strleninput;
left right && inputleft inputright;
no update
ifinputleft
left;
ifinputright
right;
strncpyrv input left, rightleft;
return rv;
int isdoublechar;
int isintchar;
int mainint argc, char argv
flags flag NONE; combination of flags
char infmttxt;
char outfmtcsv;
int i ;
whileargc
char currentarg argvi;
ifcurrentarg
errorfatal error: illegal CLAs", ;
whilecurrentarg
switchcurrentarg
case i:
ifstrcmpargvitxt && strcmpargvicsv
errorfatal error: illegal input format", ;
else ifstrcmpargvitxt
strcpyinfmttxt;
else
strcpyinfmtcsv;
i;argc;
break;
case o:
ifstrcmpargvitxt && strcmpargvicsv
errorfatal error: illegal output format", ;
else ifstrcmpargvitxt
strcpyoutfmttxt;
else
strcpyoutfmtcsv;
i;argc;
break;
case c:
flag CLEAR;flag is an enum XXX XXX
break;
case x:
flag HEX;
break;
case e:
flag SCIENTIFIC;
break;
case s:
flag TRUNCATED;
break;
default:
errorfatal error: illegal option entered", ;
argc;
fprintfstderr "Note: converting s to s with options: infmt outfmt;
ifflag & CLEAR
fprintfstderrc ;
ifflag & HEXHEX: flag: XXX HEX & flag
fprintfstderrx ;
ifflag & SCIENTIFIC
fprintfstderre ;
ifflag & TRUNCATED
fprintfstderrs ;
fprintfstderr
;
char line;
whilefgetsline stdin
char delimiter strcmpinfmtcsv: t;
char cell;
int ival; double dval;
linestrlenline;
cell strtokline delimiter;
whilecell
ifsscanfcelld &ival && isintcell
printfInteger cell: d
ival;
else ifsscanfcelllf &dval && isdoublecell
printfDouble cell: f
dval;
else
printfString cell: s
cell;
cell strtokNULL delimiter;
return ;
int isintchar input
ifinput input
input;
whileinput
ifisdigitinput
return ;
return ;
char tolowerstrchar input
char rv strdupinput;
int i ;
whileinput
rvi tolowerinput;
return rvi rv;
int isdoublechar input
input tolowerstrinput;
ifstrcmpinput "inf"strcmpinput "nan"
strcmpinputinf"
return ;
ifstrchrinpute strrchrinpute
return ;
ifinput input
input;
whileinput && input && input e
ifisdigitinput
return ;
ifinput
whileinput && input e
ifisdigitinput
return ;
ifinpute
ifinput input
input;
whileinput
ifisdigitinput
return ;
return ;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
