小编Bif*_*fen的帖子

从 C 包含并编译 C++ 头文件

我有一个 C++ 文件及其头文件。我需要在 C 代码中包含这个头文件并使用其中的函数。

cpp.h通过 编译文件时main.c,由于 C++ 链接,编译失败。

关于使用宏__cplusplus streamstring没有解决,是否有某种方法可以编译文件cpp.h并执行?

我只给出了我的代码的概要。

C++头文件cpp.h

struct s1
{
string a;
string b;
};
typedef struct s1 s2;
class c1
{
public:
void fun1(s2 &s3);
private: 
fun2(std::string &x,const char *y);
};
Run Code Online (Sandbox Code Playgroud)

C++ 文件cpp.cpp

c1::fun1(s2 &s3)
{
 fstream file;

}

c1::fun2(std::string &x,const char *y)
{

}
Run Code Online (Sandbox Code Playgroud)

C文件main.c

#include "cpp.h"
void main()
{
 c1 c2;
 s1 structobj;
 c2.fun1(&structobj);
 printf("\n …
Run Code Online (Sandbox Code Playgroud)

c c++

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

如何在Python中安装wordcloud包?

pip install wordcloud
  File "<ipython-input-130-12ee30540bab>", line 1
    pip install wordcloud
              ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

这是我在使用过程中遇到的问题pip install wordcloud

python word-cloud

2
推荐指数
1
解决办法
3万
查看次数

类内和类外的友元函数,有什么区别?

#include<iostream.h>
#include<conio.h>
class time
{
    private:
        int dd,mm,yy;
    public:
        friend istream & operator >>(istream &ip,time &t)
        {
            cout<<"\nEnter Date";
            ip>>t.dd;
            cout<<"\nEnter Month";
            ip>>t.mm;
            cout<<"\nEnter Year";
            ip>>t.yy;
            return ip;
        }
        friend ostream & operator <<(ostream &op,time &t)
        {
            op<<t.dd<<"/"<<t.mm<<"/"<<t.yy;
            return op;
        }

        void validate();
};

void time::validate()
{
}
int main()
{
    clrscr();
    time t1;
    cin>>t1;
    cout<<t1;
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它有什么区别?当我在类外定义友元函数时,编译器给出了一个错误,但是当我在类内定义它时,它工作得很好。

注意:我使用的是 Turbo C++。我知道那是老派,但我们一定会使用它。

c++ oop operator-overloading

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

如何在C++中删除小于X的数组中的整数?

我发现了PHP的相同问题,我试图在C++中做同样的事情.

我试过以下:

// returns new array with numbers lower then "number", len is set to
// new length.
int * filter(int array[], int &len, int number) {
    int cnt = 0;
    for (int i = 0; i < len; i++) {
        if (array[i] < number) {
            cnt++;
        }
    }
    int *ret = new int[cnt];
    cnt = 0;
    for (int i = 0; i < len; i++) {
        if (array[i] < number) {
            ret[cnt] = array[i];
            cnt++;
        }
    }
    len = …
Run Code Online (Sandbox Code Playgroud)

c++ arrays sorting filtering

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

为什么阅读'+'和' - '不适用于Linux?

我有这段代码读取算术表达式,如1 + 2 * 3整数和字符:

int main() {
    int d, flag = 0;
    char c;

    while ((flag = scanf("%d", &d)) != EOF)
    {
        if (flag == 1) // if integer was read sucessfully
        {
            // an integer has been read into variable 'd'
            printf("%d,", d);
        }
        else // else if it was a character
        {
            // then read char into variable 'c'
            c = getchar();
            printf("%c,", c);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在这个代码在Windows和MacOS上用MingGW编译时可以正常工作,但不知何故在Linux上,它的字符+-没有正确读取.

示例运行:
输入:1 …

c linux

2
推荐指数
2
解决办法
150
查看次数

立即逃离两个美元符号

我有一个在 Bash 脚本中运行的 SQL 语句。它包含连续两个美元符号的实例,例如:

psql -U $username -h $DATABASE_HOST $DATABASE_NAME -c "DO $$ DECLARE myVar varchar; END$$"
Run Code Online (Sandbox Code Playgroud)

怎样才能摆脱这两种情况呢?

bash

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

按最后一个字符对列表进行排序

我正在尝试创建一个程序,按照最后一个字符排序列表.

["Apple", "Mellon", "Banana"]
Run Code Online (Sandbox Code Playgroud)

这是我的清单,我需要安排它们,以便它成为.

["Banana", "Apple", "Mellon"]
Run Code Online (Sandbox Code Playgroud)

python

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

如何在Git中比较本地主服务器和远程主服务器?

我在github.com上的远程代码中做了一些更改.现在,我需要将我的本地主分支与原点进行比较.我使用下面的命令来获取差异,但我没有在终端上看到差异.

git diff master origin/master
Run Code Online (Sandbox Code Playgroud)

如果我使用下面的命令,我可以从原点拉出最新的,我可以看到我的更改.

git pull origin master
Run Code Online (Sandbox Code Playgroud)

如何在不使用的情况下看到master和origin/master中的diff git pull

git remote-branch

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

如何在单个函数中合并 zcat 和 bzcat

我想构建一个可以处理 fastq.gz 和 fastq.bz2 文件的小辅助函数。

我想将 zcat 和 bzcat 合并为一个透明函数,该函数可用于两种文件:

zbzcat example.fastq.gz
zbzcat example.fastq.bz2


zbzcat() {
  file=`echo $1 | `
## Not working
  ext=${file##*/};
  
  if [ ext == "fastq.gz" ]; then
    exec gzip -cd "$@"  
  else
    exec bzip -cd "$@"  
  fi
}
Run Code Online (Sandbox Code Playgroud)

扩展提取工作不正常。您知道其他解决方案吗

linux bash gzip bzip2 fastq

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

C++全局变量和局部变量

我遇到了以下代码:

#include<iostream>
using namespace std;
int i = 1;
int main(int argc,char ** argv)
{
    int i = i;
    cout<<i<<endl; // which i?
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它可以通过编译,但给出错误的答案,如何解释这个?

c++ variables scope

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