小编Bil*_*nch的帖子

C++模板:查询哪个更好的使用方式和原因

我有一个问题.这样做更好.

typedef enum{
  One = 1,
  Two = 2
} Number;

template< typename T, Number num >
void foo( const T& param )
{
}

or 

template< typename T >
void foo( const T& param, Number num )
{
}
Run Code Online (Sandbox Code Playgroud)

基本上我在寻找的是,这两种方法有何不同?如果我必须使用其中任何一个我应该选择哪个以及为什么?

c++ templates

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

linux内核分叉子返回状态

所以这就是我的困境:为什么当我fork();是一个过程的孩子并且它结束时,&status孩子的回归向左移8位?

例如,假设我exit(4);在分叉子项的末尾,我在wait(&status); 父进程中的状态得到了我0x400.

所以这里有一些代码说明了我的意思

#include <stdio.h>

main() {
  int n, status, cpid;

  printf("Parent pid = %d\n",  getpid());

  n = fork();

  if (n != 0) {
     //  parent code
     printf ("I'm the parent with PID %d \t fork returned %d \t my parent is %d\n", getpid(), n, getppid()); 
     status = 0;
     sleep(5);      // verify status of child
     cpid = wait(&status);

     // so when i printf the hex value of status it gets …
Run Code Online (Sandbox Code Playgroud)

c unix linux shell kernel

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

如何反转堆栈

我有一个任务,我假设采取一个堆栈,显示输出,然后反转它以显示输出.

它假设看起来像这样

Stack:
262 115 74 26 34 243 22 734 113 121
Stack Reversed:
121 113 734 22 243 34 26 74 115 262
Run Code Online (Sandbox Code Playgroud)

相反,我的出现就像这样

Stack:
262 115 74 26 34 243 22 734 113 121 121 113 734 22 243 34 26 74 115 262
Stack Reversed:
Run Code Online (Sandbox Code Playgroud)

有人可以看看我的代码,看看发生了什么.我已经尝试了很多东西,但无法完成任何工作.

#include <stdio.h>
#include <iostream>

#include "linkedStack.h"

using namespace std;

template <class Type>
void printStack(linkedStackType<Type>& stack);

template <class Type>
void reverseStack(linkedStackType<Type>& stack);

int main(int argc, char **argv)
{
   // Declare stack …
Run Code Online (Sandbox Code Playgroud)

c++ stack

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

OpenCVAndroid Imgproc.GaussianBlur应用程序已停止

我是新手OCV和android开发者.我想在我的应用程序中使用Imgproc.GaussianBlur过滤器.当我使用它时,应用程序发送"应用已停止".我只在"OpenCV Tutorial 3 - Camera Control"中添加了3行:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    Mat mat = inputFrame.gray();
    org.opencv.core.Size s = mat.size();
    Imgproc.GaussianBlur(mat, mat, s, 2);
    return mat;
}
Run Code Online (Sandbox Code Playgroud)

可能有什么不对?我有联想A820 Android 4.1.2并在OpenCV 2.4.4,2.4.5和2.4.6上试用过它.我尝试了不同的API.该Imgproc.Sobel(mat,mat,-1,1,1);过滤器工作良好.

android opencv gaussian filter

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

c中fscanf返回值的问题

我很抱歉这样做的问题(因为互联网上有这么多关于此问题),但我不得不问这个问题:

练习涉及从带有学生列表的文件中读取(记录包含:姓名,姓氏和序列号).我已经创建了文档并由13行组成,但是当我在终端上写入时./a.out,输出是这种类型的13行的列表:(null) (null) (null)

代码是:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define EOF (-1)
#define BUF 100

typedef struct stud{
    char *surname;
    char *name;
    char *serial;
} student;

int main(void){
    FILE *fd;
    int n = BUF;
    int k = 0;
    int i = 0;
    int ret;
    char *s = malloc(BUF * sizeof(char));
    if((fd = fopen("registry_office_students.txt","r")) == NULL){
        perror("error opening file");
        return -1;
    }
    while(fgets(s,n,fd)!=NULL){
        k++;
    }
    student *a = malloc(k*sizeof(student));
    rewind(fd);
    ret = fscanf(fd, "%s, %s, %s", …
Run Code Online (Sandbox Code Playgroud)

c scanf return-value

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

如何在c ++中表示大数字

我试图在c ++中代表一些大数字.在下面的代码中,如果尝试只打印s编译器就不会抱怨.但是如果尝试进行一些乘法并将其存储在t编译器中会说integer overflow in expression...

我试图制作它,unsigned long long t但编译器再次抱怨.在没有任何溢出的情况下,有没有办法进行这种乘法?

int main ()
{
    long long int s = 320718425168;
    long long int t = 4684688*68461; //4684688*68461 = 320718425168

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ integer

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

C++ substring似乎指向了错误的位置

我正在用C++阅读一个文本文件.由于我是C++的新手,我添加了一堆"cout"语句来查看事物的行为.我得到了一个输出,我没有找到任何解释,希望这里有人能指出我的相关文字.

  1. 我读了一行
  2. 打印线
  3. 使用"substr()"在"line"中打印前2个字符
  4. 将该行复制到工作区("mybuffer")
  5. 打印我工作区的子字符串,长度为10个字符

问题:(a)(3)的输出似乎是一个转义序列(不可打印的字符).如果我将子串的长度从2更改为4,我得到一个/.(b)即使"mybuffer"的内容看起来正确(前两个字符确实是//),子字符串函数只返回七个(可打印的)字符.

while( std::getline( file, line ) )
{
foundeq = 0;
clearthis = 0;
mybuffer = line;
cout<< "line>>" << line<<"\n";
cout<<"first 2 chars in line>>"<<line.substr(0,2)<<"\n";
cout<< "mybuffer>>" << mybuffer<<"\n";
cout<<"first 10 chars in mybuffer>>"<<mybuffer.substr(0,10)<<"\n";
Run Code Online (Sandbox Code Playgroud)

输出:

    line>>//--------------------------------------------------
    first 2 chars in line>>\357\273
    mybuffer>>//--------------------------------------------------
    first 10 chars in mybuffer>>//-----
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事??

提前感谢您的意见.

c++ string substr

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

结束是否刷新缓冲区

目前我正在自学C++.
C++入门说:

cout << "hi!" << ends; //writes hi and a null, then flushes the buffer
Run Code Online (Sandbox Code Playgroud)

但是C++标准库第二版说:

ends: Outputs '\0'
Run Code Online (Sandbox Code Playgroud)

而cplusplus上的引用也没有提到刷新缓冲区.
那么我应该遵循哪一个?

c++ io

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

关于删除指针的 Clang 警告

我开始使用 clang 来替代 gcc。但是当我删除[]指针时,它会发出警告。但当我改变时,警告就消失了。为什么以及如何处理?

int *a = new int[1];
int *b = new int[1];
delete[] a, b;
Run Code Online (Sandbox Code Playgroud)
a.cpp:7:17: warning: expression result unused [-Wunused-value]
    delete[] a, b;
Run Code Online (Sandbox Code Playgroud)
a.cpp:7:17: warning: expression result unused [-Wunused-value]
    delete[] a, b;
Run Code Online (Sandbox Code Playgroud)

没有警告。

c++ clang

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

使用 echo 和 system 在 C 中运行软件

我正在尝试运行一个名为 BLASTP 的生物程序,它接收两个字符串(代码中的 fasta_GWIDD 和 fasta_UNIPROT)并比较它们。我遇到的问题是在代码中使用了 echo/system。谁能建议我错过了什么?

    for(i=0;i<index1;i++)
    {
        sprintf(fasta_GWIDD,">%s\\n%s\n",fasta_name1[i],fasta_seq1[i]);
        setenv("GwiddVar", fasta_GWIDD, 1) ;
        sprintf(fasta_UNIPROT,">%s\\n%s\n",fasta_name2[i],fasta_seq2[i]);
        setenv("UniprotVar", fasta_UNIPROT, 1) ;
        system("blastp -query <(echo -e $GwiddVar) -subject<(echo -e $UniprotVar)");
    }
Run Code Online (Sandbox Code Playgroud)

错误是:

sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `blastp -query <(echo -e $GwiddVar) -subject<(echo -e $UniprotVar)'
Run Code Online (Sandbox Code Playgroud)

c shell blast

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

标签 统计

c++ ×6

c ×3

shell ×2

android ×1

blast ×1

clang ×1

filter ×1

gaussian ×1

integer ×1

io ×1

kernel ×1

linux ×1

opencv ×1

return-value ×1

scanf ×1

stack ×1

string ×1

substr ×1

templates ×1

unix ×1