这个脚本应该从键盘读取字符,将它们存储到数组中,然后输出它们:
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
void storeArraysintoStruct(char[], int);
int main()
{
char test[] ="";
int a = 0;
storeArraysintoStruct(test, a);
system("pause");
return 0;
}
void storeArraysintoStruct(char test[], int a)
{
int n;
cout << "Enter number of entries: " << endl;
cin >> n;
int i = 0;
for (i=0, i<n, i++)
{
cout << "Enter your character: " << endl;
cin.getline(test, n);
}
while (i < n)
{
cout << test[i] << endl;
i++;
}
}
编辑:修复它:
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
void storeArraysintoStruct(char[], int);
int main()
{
char test[40] = "";
int a = 0;
storeArraysintoStruct(test, a);
system("pause");
return 0;
}
void storeArraysintoStruct(char test[], int a)
{
int n;
cout << "Enter number of entries: " << endl;
cin >> n;
int i;
for (i=0; i < n; i++)
{
cout << "Enter your character: " << endl;
cin >> test[i];
if (test[n-1])
{
cout << endl;
}
}
i =0;
while (i < n)
{
cout << test[i] << endl;
i++;
if(test[n-1])
{
cout << endl;
}
}
}
但是,我收到错误预期:在&#34;)之前的主要表达式&#34;和&#34;;&#34;之前。任何帮助将不胜感激。
编辑:脚本没有按预期工作,因为它没有输出存储的字符。任何建议都将不胜感激。
答案 0 :(得分:1)
评论中已经指出了语法错误。另外,正如已经提到的那样,您永远不会在i
循环后重置for
,这会阻止您的while
循环运行。
但是,您还必须记住这个
char test[] = "";
分配长度仅为1个字符的数组test
。您不能将多个数据字符放入该数组中。换句话说,您的storeArraysintoStruct
肯定会超出数组并进入未定义的行为区域。
如果您希望预先分配更大的缓冲区以供将来在storeArraysintoStruct
中使用,则必须明确指定大小。例如
char test[1000] = "";
将使test
成为1000个字符的数组。当然,无论阵列有多大,您都有责任遵守大小限制。
P.S。如果您从未在a
内使用该参数,那么该参数storeArraysintoStruct
的重点是什么?