我正在尝试创建可以键入的行数,具体取决于用户输入。
所以它要求我输入多行,最多100行,当我输入12时,我想创建12行,我想输入每行,但每行可以有1行和最多100个字符英文字母。
之后我需要对输入这些行的所有数据做一些事情,就像一个表格......但我稍后会这样做,这是我的代码,请帮忙
PS,它显示我在VOID行中的错误....
#include <iostream>
void riadkov (int arg[], int dlzka_r){
char dlzka_r[100];
riadkov(ulohy, dlzka_r);
int main(){
using namespace std;
int ulohy;
cout << "zadaj pocet uloh: ";
cin >> ulohy;
if (ulohy >= 1 && ulohy <= 100){
cout << riadkov[ulohy] << endl; }
}else{
cout << "minimalne 1 uloha, maximalne 100 uloh!" << endl;
}
system("pause");
}
答案 0 :(得分:1)
正如亚历克斯所说,你无法在另一个内部创建一个函数,你应该让riadkov成为一个lambda函数:
auto riadkov = [](int arg[], in dkzka_r) -> void {
// implementation
}
其次,因为您尝试动态创建所需的行数是:
char **data; // but you 'll have to malloc/new yourself
如果您不需要使用char,则可以选择字符串容器
编辑:
编译并运行此示例(对于char ** ... rtfm)
#include <iostream>
#include <vector>
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
std::vector<std::string> data; // contains a sequence of strings
std::size_t num(0); // number of rows
do
{
std::cout << "Enter number (1 to 100) of rows : " ;
std::cin >> num;
} while (num < 1 || num > 100);
for (std::size_t i(0); i < num; ++i)
{
data.push_back(std::string()); // add an empty string
std::cout << "\nEnter data for row " << i << " : ";
std::cin >> data.back(); // fill the empty string with user input
if (data.back().length() > 100) {
std::cout << "Only 1 to 100 characters are allowed";
data.pop_back(); // remove the last string
--i; // the ith row will be prosessed again
}
}
// now to print what you inserted in the vector
std::cout << "Printing contents of the vector\n";
for (std::size_t i(0), ie(data.size()); i < ie; ++i)
{
std::cout << i << ". :" << data[i] << std::endl;
}
return 0;
}