所以我已经声明了一个二维数组并希望逐行显示它的行。但是当我执行以下代码时,我看到矩阵中的所有行都从我需要的行开始。
代码:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
char topics[3][10]={"Literature","Science---","Sports----"};
void main()
{
clrscr();
cout<<topics[0][0]<<endl<<topics[1][0]<<endl<<topics[2][0]<<endl;
puts(topics[0]);
cout<<endl;
puts(topics[1]);
getch();
}
输出:
L
S
S
LiteratureScience---Sports----
Science---Sports----
我希望我的程序做的是当执行 puts(0) 时,只应显示“文学”,而当执行 puts(1) 时,只显示“科学---”。
我是初学者。请建议我应该做哪些更正。谢谢。 :)
最佳答案
声明:
char topics[3][10]={"Literature","Science---","Sports----"};
被编译器当作:
char topics[3][10]={"Literature\0","Science---\0","Sports----\0"};
这意味着这些字符串中的每一个都由 11 个字符组成。
因此您需要将 topics[3][10]
更改为 topics[3][11]
。
关于c++ - 打印一行二维字符数组 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42184378/