小编Sha*_*baz的帖子

在bash脚本中解析参数/选项/标志

我试图在bash脚本中解析一个选项.如何使用getopts查看是否输入了可选标志.

FILE1=$1
FILE2=$2
outputfile=''
while getopts "o" OPTION
do
    case $OPTION in
    o)
       outputfile=$OPTARG
    ;;
    esac
done
if [ ! $outputfile -eq '' ]
then
    cat $FILE1 | paste - | $FILE1 - | tr "\t" "\n" | paste $FILE1 $FILE2 | tr '\t' '\n' > $outputfile

else
    cat $FILE1 | paste - | $FILE1 - | tr "\t" "\n" 
    paste $FILE1 $FILE2 | tr '\t' '\n' 
fi
Run Code Online (Sandbox Code Playgroud)

linux bash getopt

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

二进制搜索树打印

我正在为学校制作二叉树计划,我的一切都很完美.我现在正在努力的是正确的输出.我的老师希望输出为排序后的所有数字,后面都有逗号.

我的代码我已经完美地对数字进行了排序并打印出来,我只是不确定如何在最后一个数字后删除逗号.

电流输出:1,2,3,4,

需要:1,2,3,4

这是我的代码:

void BinaryTree::inorder(tree_node* p)
{
    if(p != NULL)
    {
        if(p->left) 
            inorder(p->left);

        cout << p->data << ", ";

        if(p->right)
            inorder(p->right);
    }
    else
        return;
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些方法来使它正确,但我无法弄明白.

任何帮助都会很棒.

谢谢.

c++ io binary-tree

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

C/C++ - 以可编程方式运行Makefile

我制作了一个Makefile.要使用它,我打开我的终端,转到包含文件夹并运行它:

make flash
Run Code Online (Sandbox Code Playgroud)

我的问题是,我怎样才能在C/C++中做到这一点?也就是说,如何在程序中调用make(可编程)?

c c++ makefile

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

为什么我必须在提交之前添加被跟踪的文件?

我是git for source control的新手.我想确保我能够理解一切,但是很早就发现了一些看起来很奇怪的东西.

这是我正在做的事情:

  1. 在GitHub上创建一个新的存储库.它提供了一个"标准"C#.gitignore文件,听起来不错,所以我说是的.
  2. 我看到存在使用存储库创建的自述文件和.gitignore.
  3. 我使用这个回购克隆到我的机器 git clone [repo location] [local folder]
  4. 我编辑.gitignore文件以添加一些其他被忽略的文件和文件夹.
  5. 我输入git commit,产生一条消息,上面写着"未提交更改的更改",但将.gitignore列为已修改.

所以最终我添加它,提交并推回原点,它显示了我对GitHub的更改.一切都很好.

这对我来说有点困惑.如果.gitignore没有被跟踪,那么它在世界上是如何被使用的git clone呢?为什么我必须在允许我提交更改之前手动添加它?

git github gitignore

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

从svn存储库克隆的Git无法识别远程

今天我将我们的svn存储库克隆到git中.我有一些未提交的工作,所以我svn commit他们然后去他们拉进git存储库.

问题是,git似乎在某种程度上混淆了svn存储库.

首先,git remote什么都没有!但是,如果我写git pull <tab>,它会自动完成svn-remote.svn.尝试结果

fatal: 'svn-remote.svn' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我去查看git自己的文件.这是配置文件:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[svn-remote "svn"]
        url = svn+ssh://myname@repository_address
        fetch = libskin/dev:refs/remotes/trunk
        branches = libskin/branch/*:refs/remotes/*
Run Code Online (Sandbox Code Playgroud)

因此,远程实际存在(虽然奇怪的是树枝都没有).所以我开始尝试git pull svngit pull trunk其他事情,他们都失败了相同的消息.

我甚至尝试在配置文件中手动添加分支:

[branch "master"]
        remote = svn
        merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在.

我该如何解决这个问题?

git git-svn

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

我在GIT的哪个标签

我是GIT的新手.上周我将代码检出标签.我忘记了标签名称,显然有一些代码问题,所以我想知道我检查了哪个标签.我该怎么找到?

git github git-checkout

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

为什么这是语法错误?

我有一个bash函数如下:

function folderSize{
    du -hs | awk '{print $1}'
}
folderSize
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下错误:

./size.sh: line 2: syntax error near unexpected token `du' ./size.sh:

line 2: `   du -hs | awk "{print $1}"'
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

linux bash shell

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

当gets函数在C中运行时,转到另一个语句

我正在用C编写一个用于局域网聊天的程序.对于聊天应用程序,我们需要在发送它时立即收到clints聊天.但问题是我使用gets()函数从一侧输入聊天,当get正在运行时,如果聊天来自另一端,则在我向另一端发送聊天之前不会收到.这是我用于在服务器端发送和接收聊天的代码.我已经删除了我使用的所有条件,因为它们都被证明毫无价值.无论当前执行哪个语句,请告诉我一旦发送聊天就从另一端显示聊天的方法.提前致谢.这是我目前的发送和接收部分代码:

while(1)
{
     printf("\n");
     gets(send_data);
     send(connected, send_data,strlen(send_data), 0);
     bytes_recieved = recv(connected,recv_data,1024,0);
     recv_data[bytes_recieved] = '\0';
     printf("Client Says: %s " , recv_data);
     fflush(stdout);
}
Run Code Online (Sandbox Code Playgroud)

c sockets network-programming chat

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

C中格式说明符的不同输出

int x;
scanf("%d",&x);
printf("%d",x);

Input: . (just a period)
Output: 4096
Run Code Online (Sandbox Code Playgroud)

为什么它在这里输出4096.这就是我的想法:所以一段时间的ASCII值是46.输入后,它读入x作为46的位模式?当它打印时,它是否在x的存储位置打印出四个字节,所以只有第一个字节用对应于46的位模式填充,其余的是构成4096的随机内容?但这是不正确的,因为看看我这样做会发生什么 -

int x;
scanf("%d",&x);
printf("%c",x);

Input: . (period)
Output: (nothing)

Input: 46
Output: . (period)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,更令人困惑的是:

int x;
scanf("%c",&x);
printf("%d",x);

Input: . (period)
Output: 4142

Input: 46
Output: 4148

Input: 47
Output: 4148
Run Code Online (Sandbox Code Playgroud)

c c++ printf scanf

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

检查字节是0x00还是0xFF的算法

是否有逻辑等同于:

if(byte != 0x00 || byte != 0xFF)

if(byte != 0x00 && byte != 0xFF)
Run Code Online (Sandbox Code Playgroud)

我是程序内存限制,可以使用每个优化:)

用单词解释,如果所有位都相同(所有0或全1),你能用逻辑函数检查吗?

谢谢!

c boolean-logic

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