我要介绍一个C ++入门类,对于部分作业,我们必须打印出8条指令的列表。我们被告知要这样做:
my $dir = "/Users/henry/Desktop/perltest/templates";
my @oldfiles = glob "$dir/*.old";
print "Checking for new templates\n\n";
for my $oldfile ( @oldfiles ) {
print "Old file \"$oldfile\"\n";
my $newfile = $oldfile;
$newfile =~ s/\.old$/.new/;
print "New file \"$newfile\" ";
if ( -e $newfile ) {
print "exists\n";
}
else {
print "doesn't exist\n";
}
}
但是我敢肯定,有更好的方法可以做到这一点。我的理解方式,如果我声明类似
using namespace std;
//omitted code
cout << "1. (first instruction)" << endl;
cout << "2. (second instruction)" << endl;
//[...]
cout << "8. (eighth instruction)" << endl;
将像字符串数组一样起作用。另外,按照我的理解,星号会创建一个指针,该指针以某种方式链接到数组中的每个字符串。如果我希望输出看起来像
const char *instr[] = {
"(first instruction)",
"(second instruction)",
//[...]
"(eighth instruction)"
}
在将指令存储在某种变量(如列表或数组)中的同时,如何最好地打印如图所示的指令?
在我看来,我想以某种方式遍历1. (first instruction)
2. (second instruction)
...
8. (eighth instruction)
并可能使用指针算术(诚然,我只听说过但从未使用过的东西)将数字附加在字符串前面,但是如果有一种方法可以使用instr[]
并且不循环任何内容,或者有比cout
更好的声明字符串列表的方法,或者两者兼而有之,
P.S。这是我的第一个StackExchange问题,因此,如果已经发布了一个类似的问题,我找不到我,如果我的写作不清楚,我会事先道歉。
答案 0 :(得分:0)
实现所需输出的最简单方法是使用字符串数组,并使用 loop 显示数组元素。您可以尝试以下代码。
#include <iostream>
using namespace std;
int main()
{
int count = 8; // number of elements you need in array
string colour[count] = {"(first instruction)", "(second instruction)", "(third instruction)", "(fourth instruction)","(fifth instruction)","(sixth instruction)","(seventh instruction)","(eighth instruction)"};
// for loop to print array elements
for (int i = 0; i < count; i++){
cout<<i+1<<". "<<colour[i]<<endl;
}
return 0;
}
希望这对您有所帮助。