C++ 为什么';这顶环不行吗?

C++ 为什么';这顶环不行吗?,c++,file-io,C++,File Io,我想知道我做错了什么。我想得到一堆不重复的向量。有人能帮我告诉我打字错误在哪里吗?我现在只是瞎了。它运行正常,没有错误。但它没有给出任何输出。我会非常感激的。我只是在为自己建一个图书馆 class vectGet { public: long long integral = 0; long long t = 14; string fname = ""; long s_nop(long t); } n; long vectGet::s_nop(lon

我想知道我做错了什么。我想得到一堆不重复的向量。有人能帮我告诉我打字错误在哪里吗?我现在只是瞎了。它运行正常,没有错误。但它没有给出任何输出。我会非常感激的。我只是在为自己建一个图书馆

class vectGet {

    public:
    long long integral = 0;
    long long t = 14;

    string fname = "";

    long s_nop(long t);
} n;

long vectGet::s_nop(long t) {
    n.integral++;
    if (abs(round((n.t*1.618)*n.t-(n.integral+0.618))-1) <= 4294967296)
        return (abs(round((n.t*1.618)*n.t-(n.integral+0.618))-1));
    else
        return (abs(round(sqrt(n.t))+(round(sqrt(n.t))*round(sqrt(n.integral))+1)));
}

int main() {


    long bn=0;
    printf("How many Vectors should we make? ");
    cin >> bn;

    vector<long> deriv;


    if (bn <= 0) {
        printf("Invalid number of vectors, Exiting");
        return 1;
    }

    printf("\nOutput File: ");
    cin >> n.fname;

    if (n.fname=="") {
        printf("You must choose a filename to continue...");
        return 1;
    }

    ofstream out;
    out.open(n.fname.c_str(), std::ios::out);

    for (long i=1;i<=bn;i++) {
        n.t=n.s_nop(n.t);
        for (long j=0;j<deriv.size();j++) {
            if (n.t == deriv[j]) {
                i--;
                break;
            }
            deriv.push_back(n.t);
            printf(".");
        }
    }

    cout << "Writing to file.." << endl;
    for (long j=0;j<deriv.size();j++)
        out << deriv[j] << " ";

    out.close();
    return 0;   
}
类向量集{ 公众: 长积分=0; 长t=14; 字符串fname=“”; 长s_nop(长t); }n; 长向量集::s_nop(长向量){ n、 积分++; 如果(abs(圆形((n.t*1.618)*n.t-(n.integral+0.618))-1)>bn; 矢量deriv; 如果(bn>n.fname; 如果(n.fname==“”){ printf(“必须选择文件名才能继续…”); 返回1; } 流出的液体; open(n.fname.c_str(),std::ios::out);
对于(长i=1;i
j这里是缺失的代码。这将创建一个在要创建的限制下的任意数量的向量列表。所有这些向量都可以按顺序复制,并且具有随机性

    ofstream out;
    out.open(n.fname.c_str(), std::ios::out);

    for (long i=1;i<=bn;i++) {
        n.t=n.s_nop(n.t);
        deriv.push_back(n.t);
        for (long j=1;j<deriv.size()-1;j++) {
            if (n.t == deriv[j-1]) {
                i--;
                deriv.pop_back();
                break;
            }
        }
    }

    cout << "Writing to file.." << endl;
    for (long j=0;j<deriv.size();j++)
        out << deriv[j] << " ";

    out.close();
    return 0;   
}
流出的
;
open(n.fname.c_str(),std::ios::out);

对于(长i=1;我可以发布mcve()?你所说的“无输出”是什么意思,它不是在生成文件?你是在关闭输出流吗?我试图使用mcve规则。这还不是全部代码。我确实接触了一个文件。我确实关闭了输出流。但它甚至不会进入顶部循环。
bn
将保留该值,但计数器
I
不想做任何事情,它会跳过循环。因此,在提出你的问题时,除了已经创建的文件外,没有任何文件输出。你能编辑以修复格式吗?这很难阅读。这看起来像是将几段代码粘贴在一起,看起来像一段。我会使用调试器逐步检查你的代码--查找类似的内容,例如,bn的值是多少(bn分配在哪里?如果可以,@AndyM我把剩下的代码都放上去了。太好了!非常感谢。我的代码现在完全可用了!没问题-如果这个问题解决了,请标记为已解决=)检查调试(我不知道您使用了什么工具,但gdb确实非常有用而且非常简单,除非您有一个类似visual studio的可视化调试器)