Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int main( int argc, char** argv ) {
- (void) argc; // unsed
- (void) argv; // unsed
- FILE *in = stdin, *out = stdout;
- if(argc > 1){
- in = fopen(argv[1], "r");
- if(in ==NULL){
- printf("Neotevren soubor %s \n", argv[1]);
- in = stdin;
- }
- }
- if(argc == 3){
- out = fopen(argv[2], "w+");
- }
- char ch;
- enum{start, slash, dslash, ignore,lslash, eolslash} state = start;
- while((ch = fgetc(in)) != EOF){
- switch (state){
- case start:
- if ((ch == '\'') || (ch == '\"')){
- state = ignore;
- fputc(ch, out);
- break;
- }
- else if(ch == '/'){
- state = slash;
- }else{
- fputc(ch, out);
- }
- break;
- case slash:
- if(ch== '/'){
- state=dslash;
- }else if(ch== '*'){
- state=lslash;
- }
- else{
- state=start;
- fputc('/', out);
- fputc(ch, out);
- }
- break;
- case dslash:
- if(ch == '\n'){
- fputc(ch, out);
- state = start;
- }
- break;
- case ignore:
- if((ch == '\'') || (ch == '\"')){
- state = start;
- fputc(ch, out);
- }else{
- fputc(ch, out);
- }
- break;
- case lslash:
- if (ch== '*'){
- state = eolslash;
- }
- break;
- case eolslash:
- if(ch== '/'){
- state = start;
- } else {
- state = lslash;
- }
- break;
- default:
- break;
- }
- }
- if(argc > 1){
- fclose(in);}
- if(argc >2){
- fclose(out);}
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement