如何阻止C ++程序在Sublime Text 3上执行

时间:2019-01-06 09:17:38

标签: c++ sublimetext3

我尝试使用自定义版本在Sublime Text 3上运行程序。我想我已经陷入无限循环。

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

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

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

我试图删除input.in中的所有输入。那只会使问题变得更糟。程序开始向0000 0000写很多output.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文本中出现的小方框的输入。我正在从文件中获取输入,这就是使问题与建议的重复项不同的原因。取消构建等其他方法也无济于事,这有助于在重复的摘要中提出问题。

0 个答案:

没有答案