我试图在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) 我正在为学校制作二叉树计划,我的一切都很完美.我现在正在努力的是正确的输出.我的老师希望输出为排序后的所有数字,后面都有逗号.
我的代码我已经完美地对数字进行了排序并打印出来,我只是不确定如何在最后一个数字后删除逗号.
电流输出: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)
我已经尝试了一些方法来使它正确,但我无法弄明白.
任何帮助都会很棒.
谢谢.
我制作了一个Makefile.要使用它,我打开我的终端,转到包含文件夹并运行它:
make flash
Run Code Online (Sandbox Code Playgroud)
我的问题是,我怎样才能在C/C++中做到这一点?也就是说,如何在程序中调用make(可编程)?
我是git for source control的新手.我想确保我能够理解一切,但是很早就发现了一些看起来很奇怪的东西.
这是我正在做的事情:
git clone [repo location] [local folder]git commit,产生一条消息,上面写着"未提交更改的更改",但将.gitignore列为已修改.所以最终我添加它,提交并推回原点,它显示了我对GitHub的更改.一切都很好.
这对我来说有点困惑.如果.gitignore没有被跟踪,那么它在世界上是如何被使用的git clone呢?为什么我必须在允许我提交更改之前手动添加它?
今天我将我们的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 svn和git pull trunk其他事情,他们都失败了相同的消息.
我甚至尝试在配置文件中手动添加分支:
[branch "master"]
remote = svn
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在.
我该如何解决这个问题?
我是GIT的新手.上周我将代码检出标签.我忘记了标签名称,显然有一些代码问题,所以我想知道我检查了哪个标签.我该怎么找到?
我有一个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)
谁能帮我?
我正在用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) 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) 是否有逻辑等同于:
if(byte != 0x00 || byte != 0xFF)
if(byte != 0x00 && byte != 0xFF)
Run Code Online (Sandbox Code Playgroud)
我是程序内存限制,可以使用每个优化:)
用单词解释,如果所有位都相同(所有0或全1),你能用逻辑函数检查吗?
谢谢!