首页 > 解决方案 > 如何阻止 C++ 程序在 Sublime Text 3 上执行

问题描述

我尝试使用自定义构建在 Sublime Text 3 上运行程序。我想我已经进入了一个无限循环。

我已经阅读了一些关于 Sublime Text 3 进入无限循环的其他答案。但他们都没有回答我的问题。

该程序在c++. 我正在从一个名为的文件中输入文本input.in并输出到output.out. 代码中没有任何东西可以变成潜在的无限循环。

output.out我可以通过删除然后制作另一个同名文件来解决问题。但我不认为这是唯一的方法,也不是最好的方法。有没有人有更好的方法。

我试图从input.in. 那只会让问题变得更糟。该程序开始0000 0000output.out. 在数千行这样的行之后,它开始打印长度为 4 的字母数字字符串(也可能是不太确定的十六进制数字)我已经尝试从终端杀死崇高的文本。但是当我重新打开它时,文件output.out仍在填充。我也试过了Cancel Build。即使这样也无济于事。

我的代码是

#include <stdio.h>
#include <cmath>
#include <bits/stdc++.h>
#define ll long long 
#define rep(a,b) for(int i = a; i<b; i++)
#define debug(s) cout<<s
using namespace std;

float err = 1e-7;
int main(){
    #ifndef ONLINE_JUDGE
        // for getting input from input.txt
        freopen("input.in", "r", stdin);
        // for writing output to output.txt
        freopen("output.out", "w", stdout);
    #endif
    int a;
    while(scanf("%d",&a) == 1){
        int ans = 0;
        vector<int> v1;
        std::vector<int> v2;
        for(int i = a+1;i<=2*a;i++){
            for(int j = i; j<100000000000; j++){
                //printf("checking for i = %d and j = %d\n", i,j);
                if(abs(1.0/a-1.0/j - 1.0/i)<err){
                    //arr.push_back("1/%d = 1/%d + 1/%d\n"+a+j+i) ;
                    v1.push_back(j);
                    v2.push_back(i);
                    ans++;
                    break;
                }
                if(1.0/j + 1.0/i < 1.0/a){
                    break;
                }
            }
        }



        printf("%d\n", ans);
        for(int i = 0; i<ans; i++){
            printf("1/%d = 1/%d + 1/%d\n",a,v1.at(i),v2.at(i));
        }
    }

}

任何帮助,将不胜感激。

编辑:我没有从终端或 Sublime 文本中出现的小框接受输入。我正在从文件中获取输入,这就是使问题与建议的副本不同的原因。其他方法(例如取消构建)无济于事,这将有助于在 sugested 重复中的提问者

标签: c++sublimetext3

解决方案


推荐阅读