我有一个 C++ 文件及其头文件。我需要在 C 代码中包含这个头文件并使用其中的函数。
当cpp.h通过 编译文件时main.c,由于 C++ 链接,编译失败。
关于使用宏__cplusplus stream并string没有解决,是否有某种方法可以编译文件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) 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。
#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++。我知道那是老派,但我们一定会使用它。
我发现了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) 我有这段代码读取算术表达式,如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 …
我有一个在 Bash 脚本中运行的 SQL 语句。它包含连续两个美元符号的实例,例如:
psql -U $username -h $DATABASE_HOST $DATABASE_NAME -c "DO $$ DECLARE myVar varchar; END$$"
Run Code Online (Sandbox Code Playgroud)
怎样才能摆脱这两种情况呢?
我正在尝试创建一个程序,按照最后一个字符排序列表.
["Apple", "Mellon", "Banana"]
Run Code Online (Sandbox Code Playgroud)
这是我的清单,我需要安排它们,以便它成为.
["Banana", "Apple", "Mellon"]
Run Code Online (Sandbox Code Playgroud) 我在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?
我想构建一个可以处理 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)
扩展提取工作不正常。您知道其他解决方案吗
我遇到了以下代码:
#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)
它可以通过编译,但给出错误的答案,如何解释这个?