- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
首先,我是一个初学者,试图弄清楚如何使用星号打印上下移动的字母“OK”。目标是从偏移位置开始并让它们递增和递减 x 次。 (我还没有参与这部分)。但首先,我一直在思考为什么“K”没有按照我想要的方式打印出来。谁能提供帮助?
我尝试设置一个 for 循环来处理每个字符的打印。我试图制作计数器,以便在打印字符时它们看起来是偏移的,因为我知道如果它们都从第 0 行开始,那么它们将并排打印。以下是我到目前为止编写的一些代码。 'O' 打印但 'K' 打印奇怪。
int main() {
char userInputCharacter; // User input for some character
int userInputNumber; // User input for some numerical value
cout << endl
<< "Choose from among the following options: \n"
<< " 2. Display OK as an animation \n"
<< "Your choice -> ";
cin >> userInputCharacter;
cout << endl;
// Display OK as an animation
if( userInputCharacter == '2') {
cout << "How many sets of letters do you want to display? -> ";
cin >> userInputNumber;
for( int setsOfLetters = 0; setsOfLetters < userInputNumber; setsOfLetters++) {
// Display some number of blank lines. This starts as a large number the first time, then
// gets smaller each subsequent time, moving the ENTIRE set of letters vertically.
for( int numberOfBlankLines = userInputNumber; numberOfBlankLines > setsOfLetters; numberOfBlankLines--) {
cout << endl;
}
// Display one set of letters, going through and printing one "slice" of each letter at a time.
int i = 0;
int j = 4;
for( int i=0; i<8; i++) {
if( i==0) cout << " ";
else if( i==1) cout << " ";
else if( i==2) cout << " ** ";
else if( i==3) cout << " * * ";
else if( i==4) cout << "* * ";
else if( i==5) cout << "* * ";
else if( i==6) cout << " * * ";
else if( i==7) cout << " ** ";
if( j ==0) cout << " ";
else if( j ==1) cout<< " ";
else if( j ==2) cout << "* * ";
else if( j ==3) cout << "* * ";
else if( j ==4) cout << "** ";
else if( j ==5) cout << "* * ";
else if( j ==6) cout << "* * ";
else if( j ==7) cout << " ";
cout << endl;
}//end for( int i...)
// Clear the screen after the letters are displayed.
this_thread::sleep_for(chrono::milliseconds( 185)); // Sleep for 185 milliseconds
system( "clear"); // Clear the screen. Comment out this line if you don't want them erased.
}//end for( int setsOfLetters...
}//end else if( userInputCharacter == '2' ...
return 0;
}//end main()
如果我们可以建议使用 for
循环和 if
和 else
语句来解决这个问题,那将对我有好处。我还没有涉及函数和字符串,也没有涉及数组,我不想跳到前面而变得更加困惑。提前谢谢大家。
最佳答案
正如我在对您之前帖子的评论中所述,您可能想尝试在没有 for
的情况下打印循环:
std::cout << " ** * * \n";
std::cout << " * * * * \n";
std::cout << "* * ** \n";
std::cout << "* * * * \n";
std::cout << " * * * * \n";
std::cout << " ** * *\n";
可能,对您来说更简单的解决方案是将文本声明为 C 样式字符串:
static const char ok_lines[] =
{
" ** * * \n"
" * * * * \n"
"* * ** \n"
"* * * * \n"
" * * * * \n"
" ** * *\n"
};
然后您可以在之前打印行:
std::cout << "\n\n";
std::cout << ok_line;
或打印以下行:
std::cout << ok_line;
std::cout << "\n\n";
您的动画可能看起来像:
static const unsigned int MAX_CYCLES = 10U;
for (unsigned int i = 0; i < MAX_CYCLES; ++i)
{
Clear_The_Screen();
if ((i % 2) == 0)
{
std::cout << ok_lines;
std::cout << "\n\n";
}
else
{
std::cout << "\n\n";
std::cout << ok_lines;
}
Delay(); // You'll need to write or research this one.
}
提醒:简单的设计产生简单的代码。简单的代码更容易调试,注入(inject)的缺陷也更少。
注意:如果你想要更高效的输出,替换std::cout << ok_lines;
与 std::cout.write(ok_lines, sizeof(ok_lines) - 1);
. -1
防止将 nul 终止符写入控制台。
关于c++ - 打印星号中上下移动的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57809077/
*args 和 **kwargs 是什么意思? def foo(x, y, *args): def bar(x, y, **kwargs): 最佳答案 *args 和 **kwargs 是一个常见的惯
*args 和 **kwargs 是什么意思? def foo(x, y, *args): def bar(x, y, **kwargs): 最佳答案 *args 和 **kwargs 是一个常见的惯
*args 和 **kwargs 是什么意思? def foo(x, y, *args):def bar(x, y, **kwargs): 最佳答案
在python文档中2.4.3. Formatted string literals ,似乎可以在 f 字符串的 {} 中写一个星号后跟一个表达式,但我找不到如何使用它。 那是什么以及如何使用它?它是
这些函数定义中的*args和**kwargs是什么意思? def foo(x, y, *args): pass def bar(x, y, **kwargs): pass 参见Wha
这些函数定义中的*args和**kwargs是什么意思? def foo(x, y, *args): pass def bar(x, y, **kwargs): pass 参见Wha
这个问题在这里已经有了答案: Delegated yield (yield star, yield *) in generator functions (3 个答案) 关闭 6 年前。 假设我创建了
我有时注意到使用 *偶尔搜索光标下的单词会有略微不同的行为(通常是当我在不同的计算机之间切换时)。问题是当我搜索前面有 * 的单词时(如 c++ 指针)。例如: MyPointer *foo; ...
This question already has answers here: Keyword only parameter (1个答案) Python documentation for os.re
这是我的数据: dput(dt) structure(c(15236000, 0, 0, 0, 0, 36722900, 45971100, 0, 0, 0, 0, 99067
所以我有一个看起来像这样但有 6k 行的数据框: AWC, LocationID 333, *Yukon 485, *Lewis Rich 76, *Kodiak 666, Kodiak 54, *R
我有一个简单的问题。我想列出我们可以使用关键字星号(或星号)* 的所有场景。 我只知道这些场景: Select * from Customers; Select Count(*) from Custo
瑞安·贝茨的Railscast about git ,他的 .gitignore 文件包含以下行: tmp/**/* 使用双星号后跟一个星号的目的是什么:**/*?简单地使用 tmp/* 而不是 tm
我想以这种方式选择带有 class="x"的元素的所有后代元素: .x * { color: red; } a b
这个问题在这里已经有了答案: What does ** (double star/asterisk) and * (star/asterisk) do for parameters? (25 个答案
最近我在 Programming Paradigms 上看到了这个视频和教授。使用星号、星形和符号等术语。 这就是他如何使用这些运算符的: int i = 37; float f = *(float*
我尝试在自定义按钮中居中对齐符号星号 (*),但我做不到。 如何像其他字符一样垂直居中对齐(1,2...)? 最佳答案 只需使用不同的字符。除了 * (ASTERISK U+002A),还有许多其他类
结论 概括的来说,就是对修饰的变量进行拆分, 对修饰的形式参数进行参数聚集。 单*号,将被修饰的变量按元素方式拆分, 对修饰的形式参数进行参数聚集。 双**号,将被修饰的变量按键值对进行拆分, 对
如果我想保持功能,并且不想在中间使用 *,那么等效的替代函数是什么?例如, import operator as op print(op.eq(*map(str.upper, ['a', 'A']))
我窥视 ng2-dropdown 我可以看到(ng2-dropdown-menu.ts) 除其他事项外 transition('hidden => visible', [
我是一名优秀的程序员,十分优秀!