我应该如何打印const char * a []作为降序编号列表?

时间:2018-09-07 04:37:22

标签: arrays printing

我要介绍一个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问​​题,因此,如果已经发布了一个类似的问题,我找不到我,如果我的写作不清楚,我会事先道歉。

1 个答案:

答案 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;
}  

希望这对您有所帮助。