我尝试使用自定义版本在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文本中出现的小方框的输入。我正在从文件中获取输入,这就是使问题与建议的重复项不同的原因。取消构建等其他方法也无济于事,这有助于在重复的摘要中提出问题。