小编GKE*_*KED的帖子

在C++中使用#undef

我正在研究GSL库中的一段代码,并在头文件的开头用几行困惑.我理解#undef,#ifdef等是什么,但我不明白为什么他们基本上重置_BEGIN_DECLS的定义然后再继续定义它?从技术上讲,不应该有任何先前的定义,对吗?我的意思是,这些东西是静态的,不受变化的影响.无论如何,这里是代码的摘录:

    #undef __BEGIN_DECLS
    #undef __END_DECLS
    #ifdef __cplusplus
    # define __BEGIN_DECLS extern "C" {
    # define __END_DECLS }
    #else
    # define __BEGIN_DECLS /* empty */
    # define __END_DECLS /* empty */
    #endif
Run Code Online (Sandbox Code Playgroud)

c++ c-preprocessor preprocessor-directive

8
推荐指数
1
解决办法
386
查看次数

将C++项目从VS 2005升级到VS 2010 Express时的兼容性问题

我得到了一些用Visual Studio 2005版本构建的文件.

但是,当我尝试将.sln文件转换为在VS 2010 Express C++中使用时,我遇到了问题.

该错误给出了路径,并表示即使文件存在,也找不到该文件.我知道两者之间不应该有任何兼容性问题,除非我遗漏了什么.有没有人遇到过这类问题?

确切的错误消息是:

"转换报告 - GeoM\GeoM.vcproj:转换项目文件'C:\ Users ...\GeoM\GeoM.vcproj'.找不到文件'C:\ Users ...\GeoM\GeoM.vcproj'.\项目升级失败.

projects-and-solutions visual-studio-2010 visual-studio-express visual-studio visual-c++

5
推荐指数
1
解决办法
5499
查看次数

r中for循环出错

我正在使用一个名为bumpus的数据框.当我尝试使用forif语句仅选择某些行时,我收到一个错误:

Error: unexpected '{' in "for(i in 1:(nrow(bumpus)){" 
Run Code Online (Sandbox Code Playgroud)

你能帮我弄清楚我错过了什么吗?这是我的for循环:

for(i in 1:(nrow(bumpus)) {
    if(bumpus[i,2]=="m")
    {
    bumpus_males<-bumpus[i,]
    }
}
Run Code Online (Sandbox Code Playgroud)

statistics loops for-loop r

1
推荐指数
1
解决办法
5686
查看次数

getline()错误

我正在编写这个函数,将一个文件的内容复制到另一个文件中.我在while循环中使用getline()函数.不知何故,编译器给了我一个错误.你知道为什么吗?这是我的代码:

#include<iostream>
#include<cstdlib>
#include <fstream>

using namespace std;

// Associate stream objects with external file names

#define inFile "InData.txt" // directory name for file we copy from
#define outFile "OutData.txt"   // directory name for file we copy to

int main(){
    int lineCount;
    string line;
    ifstream ins;   // initialize input object an object
    ofstream outs;  // initialize output object
    // open input and output file else, exit with error

    ins.open("inFile.txt");
    if(ins.fail()){
        cerr << "*** ERROR: Cannot open file " << inFile …
Run Code Online (Sandbox Code Playgroud)

c++ getline ifstream

1
推荐指数
1
解决办法
8516
查看次数

递归函数错误:"堆栈溢出"

我写了这个函数,它应该找到最小的正整数,它可以被每个数字1到20整除.我得到"堆栈溢出错误",即使我测试数字1到10,它也可以正常工作.这是我的代码:

#include<iostream>
#include<cstdlib>

using namespace std;

// function prototype
int smallPos(int k, int m,int n);

int main(){
    printf("the smallest positive number that is divisible by 1 through 20 is %d ", smallPos(1,1,13));

}

int smallPos(int k, int n, int m){
    int div=0;
    for(int i = n;i<=m;i++) {
        if (k%i==0) 
            div++;
    } 
    if (div==m) {
        return k;
    } else {
        k+=1;
        smallPos(k,n,m);
    }   
}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?无论如何,这个数字不应该那么大.谢谢!

c++ recursion

0
推荐指数
1
解决办法
410
查看次数