Brian_L 2020-09-13 11:25 采纳率: 100%
浏览 84
已采纳

求大神,C++,读取相应的内容并输出,已给出部分代码,

求大神,很急,怎样完善get_token等以实现运行示例中的功能

该c++程序将从标准输入读取,并将相应的令牌写入标准输出,每行一个。
程序不打开文件。 它通过cin从标准输入中读取。 不使用或ifstream。

输入格式
输入将是任意行,包含令牌。 这是有效的令牌:

1: +=, 2: -=, 3: *=, 4: /=, 5: =, 6: !=, 7: <, 8: >, 9: <=, 10: >=, 11: if, 12: fi, 13: print, 14: return
15: 变量:26个单字母a到z
16: 整数:非空数字序列(0…9)

使用词法分析的最大munch方法:给定两个标记(<和<=,或p和print)之间的选择,请始终选择较长的标记。
忽略标记之前,之后和之间(但不是内部)的空格(由isspace()确定)。
但是,令牌并不总是由空格分隔。 a += b是三个单独的标记。 printa是两个标记,print和a。
忽略注释,该注释定义为#,后跟其余的行。 注释确实是令牌之间的中断。
输入中的大小写无关紧要, 所有输出必须为小写。
如果输入为iFg> R,则如果g,>,r,则输出必须为四个标记。
如果遇到无效的输入(例如&&),请生成一条包含无效输入的错误消息,然后停止程序。

运行示例:

图片说明

#include <iostream>
#include <stdlib.h>
#include <stdio.h>

using namespace std;
string progarm_name;

bool get_token(string &input, string &sym){

}
void analyze(istream &in){
    for(string line; getline(in, line);)
        analyze(line);
    }
}
void analyze(string input){
    for(string token; get_token(input, token):){
        cout << token << '\n';
    }
}
int main(int, char *argv[]){
    program_name = argv[0];
    analyze(cin);
    return 0;
    }
}

图片说明

图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-13 12:10
    关注

    之前的代码写了一半,正要补充,结果你给删除了。

    还有没有诚信

    请你把 https://ask.csdn.net/questions/1096715 中我贴出的代码复原,并且采纳,再继续帮你完成这个程序。

    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    
    using namespace std;
    string progarm_name;
    
    bool get_token(string &input, string &sym){
    
    }
    void analyze(istream &in){
        for(string line; getline(in, line);)
            analyze(line);
        }
    }
    void analyze(string input){
        for(string token; get_token(input, token):){ //这里显然是分号
            cout << token << '\n';
        }
    }
    int main(int, char *argv[]){
        program_name = argv[0];
        analyze(cin);
        return 0;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上