使程序也从文件而不是从stdin中读取

缺口

如何更改以下代码,使其也遍历文件而不是仅通过stdin?例如,如果我在./detag blah哪里是文本文件,该程序就可以工作

我是否使用if语句并尝试使用cat它?

int main() {
   int in_tag = 0;
   char c;

   while ((c = getchar()) != EOF) {
       if (c == '<' || c == '>') {
           in_tag = (c == '<') ? 1 : 0;
       } else {
           if (!in_tag) {
               putchar(c);
           }
       }
   } }
wbt11a
#include <stdio.h>

int main(int argc, char **argv) {
    int in_tag = 0;
    char c;
    FILE *fp;


    fp = fopen(argv[1],"r");
    if (fp == NULL){
        perror("Error");
    }
    else{
        while ((c = fgetc(fp)) != EOF) {
            if (c == '<' || c == '>') {
                in_tag = (c == '<') ? 1 : 0;
            } else {
                if (!in_tag) {
                putchar(c);
                             }
            }
         }
    }
}   

例子:

[12:43:24] wthom@dragon21:~/test [30] cat blah
this is a line in blah
this is a line in blah too
[12:43:26] wthom@dragon21:~/test [31] ./a.out blah
this is a line in blah
this is a line in blah too

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章