我有c ++代码,执行一些模拟.
我想显示模拟的百分比,但我不希望每一步输出一个新行,比如
1%
2%
3%
...
有没有办法在c ++或shell脚本中显示进度而不创建新行?
谢谢
任何人都知道如何更新我的个人网页上的数字而不刷新整个页面?
谢谢
double N=0;
forAll (internalIDs_, i) {
N++;
double percent = 100*N/internalIDs_.size();
// Info<< "\rProgress: " << percent << "%" << endl;
printf("\r[%6.4f%%]",percent);}
Run Code Online (Sandbox Code Playgroud)
终端光标通过数字循环闪烁,非常烦人,如何摆脱这个?
新手在这里.Qt状态栏每次只有一行,我无法跟踪历史记录或将历史记录保存在日志文件中.
所以我希望在我的主窗口中有一个停靠小部件,它能够以多行方式和自动滚动方式显示我需要的消息,然后自动保存到日志文件中.
我的问题是如何在Qt中这样做?谢谢
你知道有一个内置的Bash命令read.如果我想在我的脚本中执行此操作,该怎么办
read PASSWROD
Run Code Online (Sandbox Code Playgroud)
当它提示我输入时,我的所有输入都是可见的.是否有替代命令可以使输入不可见.
我使用以下行在我的c ++程序中输出我的模拟进度信息,
double N=0;
double percent=0;
double total = 1000000;
for (int i; i<total; ++i)
{
percent = 100*i/total;
printf("\r[%6.4f%%]",percent);
}
Run Code Online (Sandbox Code Playgroud)
它工作正常!
但问题是我看到终端光标通过数字不断循环闪烁,这很烦人,有谁知道怎么摆脱这个?
我见过像wget或ubuntu apt这样的程序,它们也使用进度条或百分比,但它们似乎没有闪烁的光标问题,我想知道他们是怎么做到的?
谢谢!
我写了一个shell脚本来做某事.一切正常!我的代码的一部分是这样的,所以我可以传递选项和参数:
while getopts "a:b:c" opt
do
case $opt in
a) AA=$OPTARG ;;
b) BB=$OPTARG ;;
c) CC=$OPTARG ;;
esac
done
shift $(expr $OPTIND - 1)
Run Code Online (Sandbox Code Playgroud)
但是现在我想添加一个选项,比如说d我不希望它使用任何参数,如下面的代码所示,但它以错误结束,抱怨option requires an argument error -- d似乎getopts不能这样做.
while getopts "a:b:c:d" opt
do
case $opt in
a) AA=$OPTARG ;;
b) BB=$OPTARG ;;
c) CC=$OPTARG ;;
d) DD="ON" ;;
esac
done
shift $(expr $OPTIND - 1)
Run Code Online (Sandbox Code Playgroud)
那我该怎么办?如果我想要两个选项类型,一个可以接受参数,而另一个不需要参数,那么通常的做法是什么?
如何使用tar并通过LZ4过滤存档?还是任何可用的工具?使用起来看起来很麻烦tar cvf folderABC.tar folderABC && lz4c -c0 folderABC.tar.
PS:*nix环境
在我的流体模拟过程中,物理时间正在进行中0, 0.001, 0.002, ..., 4.598, 4.599, 4.6, 4.601, 4.602, ....现在我想0.1, 0.2, ..., 4.5, 4.6, ...从这个时间序列中选择时间= 然后进行进一步的分析.所以我写了下面的代码来判断fractpart命中是否为零.
但我很惊讶我发现以下两种分割方法得到两种不同的结果,我该怎么办?
double param, fractpart, intpart;
double org = 4.6;
double ddd = 0.1;
// This is the correct one I need. I got intpart=46 and fractpart=0
// param = org*(1/ddd);
// This is not what I want. I got intpart=45 and fractpart=1
param = org/ddd;
fractpart = modf(param , &intpart);
Info<< "\n\nfractpart\t=\t"
<< fractpart
<< …Run Code Online (Sandbox Code Playgroud) #!/bin/bash
# Let's say now, we are working in my $HOME directory
# Content of testfile (originally)
# 123456
# ABCDEF
# /home/superman
string="ABCDEF"
myfile="$HOME/testfile"
# test-1, this is okay
sed -i "/$string/d" $myfile
echo $string >> $myfile
# test-2, this fails
# ERROR (sed: -e expression #1, char 4: extra characters after command)
sed -i "/$PWD/d" $myfile
echo $PWD >> $myfile
# Not working either
sed -i ":$PWD:d" $myfile
echo $PWD >> $myfile
Run Code Online (Sandbox Code Playgroud)
我的问题:如何处理$ PWD情况?
我用谷歌搜索,什么也没找到。我想我只是不知道如何输入正确的问题。
好的,我的简单 MemoryBlock 类有两个成员数据,int size和int* data. 所以要构建一个复制构造函数,我使用 std::copy 来进行内存复制。现在我想尝试用 C++ 智能指针来替换原始指针。说使用unique_ptr<int> data. 以下代码的等价性是什么?因为现在,rhs.data + size行不通了。
std::copy(rhs.data, rhs.data + size, data);
Run Code Online (Sandbox Code Playgroud) 我看到了以下shell脚本。我想我对它在做什么有了基本的了解,但我仍然不明白使用这么多重定向和文件描述符的目的是什么?例如exec 3>&1,do something 2>&1 1>&3和exec 3>&-。
#-Open file descriptor (fd)
exec 3>&1
#-Create a form and then store data to $VALUES variable
VALUES=$(dialog \
--keep-tite \
--ok-label "Submit" \
--backtitle "Linux User Managment" \
--title "Useradd" \
--form "Create a new user" \
15 50 0 \
"Username:" 1 1 "$user" 1 10 10 0 \
"Shell:" 2 1 "$shell" 2 10 15 0 \
"Group:" 3 1 "$groups" 3 10 8 0 \ …Run Code Online (Sandbox Code Playgroud)