代码只是冻结而不输出任何内容

时间:2020-12-22 18:24:30

标签: c++

所以我有一个包含英德单词的 input.txt 文件 例如 book-buch、area-Bereich 等(那些“-”也包括在内) 我必须编写一个小型翻译器,所以如果输入 book 代码必须输出 buch,反之亦然 我已经将英语编码为德语输出,但是由于某种原因,当我在德语上尝试相同的逻辑到英语时,它没有输出任何内容

#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <math.h>
using namespace std;



int main() {
    ifstream ifs("input.txt");
    ofstream ofs("history.txt", ifstream::app);
    int a, b, c = 0, j;
    string m, l, p[100];
    for (a = 0; a < 50; a++) {
        ifs >> p[a];
        m = p[a];
    }
    cin >> l;
    for (a = 0; a < 50; a++) {
        if (l == p[a].substr(l.size() + 1, p[a].size())) {  //here's the problem
            cout << p[a].substr(0, p[a].size() - l.size() + 1);

        }
        if (l == p[a].substr(0, l.size())) { //english to german
            cout << p[a].substr(l.size() + 1, p[a].size());
            ofs << l << "-" << p[a].substr(l.size() + 1, p[a].size());
            ofs << endl;
        }
    }

1 个答案:

答案 0 :(得分:0)

我用了不同的方法

for (a = 0; a < 50; a++) {
        pos = p[a].find("-");
        if (l == p[a].substr(pos + 1)) {
            pos = p[a].find("-");
            cout << p[a].substr(0, pos);

也不知为何忘记了 c++ 编译器是区分大小写的 傻我