Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在c/c+中扫描和打印循环中的阵列+;_C++ - Fatal编程技术网

C++ 在c/c+中扫描和打印循环中的阵列+;

C++ 在c/c+中扫描和打印循环中的阵列+;,c++,C++,我想制作一个程序,从用户那里扫描输入的行数 比如: 输入: 3 zyad sabry 322 艾哈迈德阿拉11 约翰·亚当斯122 输出: zyad sabry 322 艾哈迈德阿拉11 约翰·亚当斯122 这是我的代码: scanf("%d",&n); for(i=0;i<n;i++) cin >> name >> lname >> num ; for(i=0;i<n;i++)

我想制作一个程序,从用户那里扫描输入的行数 比如:

输入:

3
zyad sabry 322
艾哈迈德阿拉11
约翰·亚当斯122
输出:

zyad sabry 322
艾哈迈德阿拉11
约翰·亚当斯122
这是我的代码:

      scanf("%d",&n);
    for(i=0;i<n;i++)
        cin >> name >> lname >> num ;

  for(i=0;i<n;i++)
        cout << name << " " << lname << " " << num  << endl;
        return 0;
scanf(“%d”和&n);
对于(i=0;i>name>>lname>>num;

对于(i=0;i,您有一组属性,
name
lname
num
,您希望存储所有这些属性

要将多个对象存储为一个集合,通常是一个很好的容器。您可以这样使用它来解决问题:

std::vector<std::string> names;  // this vector contains each name
std::vector<std::string> lnames; // this vector contains each lname
std::vector<std::string> nums;   // this vector contains each num

for(i=0;i<n;i++)
{
    std::string name, lname, num;
    std::cin >> name >> lname >> num;
    names.push_back(name);   // adds `name` to the `names` vector
    lnames.push_back(lname); // adds `lname` to the `lnames` vector
    nums.push_back(num);     // adds `num` to the `nums` vector
}

for(i=0;i<n;i++)
{
    std::cout << names.at(i) << " ";  // prints the name at index i in `names`
    std::cout << lnames.at(i) << " "; // prints the corresponding lname in `lnames`
    std::cout << nums.at(i) << std::endl; // prints the corresponding num in `nums`
}
现在我们有了
Person
类,我们可以简单地定义一个向量来保存所有
Person
实例:

std::vector<Person> persons;

for(i=0;i<n;i++)
{
    Person person; // creates a new Person object

    // now let's read the name, lname and num for that person:
    std::cin >> person.name;
    std::cin >> person.lname;
    std::cin >> person.num;

    // and add the person to the list of persons
    persons.push_back(person); 
}
std::病媒人;

对于(i=0;i请告诉我这不是你的代码实际的样子。我很抱歉,我不知道如何在这个论坛上发布或编写@JonathonReinhart的代码,所以请帮助我:如果你想一次性获取多行输入,那么你应该尝试这个答案中列出的方法,并将每行保存到一个向量(适用于可变大小数组的最简单方法)为什么使用
.at()
而不仅仅是方括号?伙计们,我需要一些东西来帮助你们为我编写困难的代码,我希望它简单。@kvoth因为它会在您尝试访问边界外时警告您。@ZyadSabry这是最简单的方法。您真正需要的是学习语言。顺便检查一下我所做的编辑。@ZyadSabry这是最好的简单方法我建议你查一本教程,教你如何使用向量。
std::vector<Person> persons;

for(i=0;i<n;i++)
{
    Person person; // creates a new Person object

    // now let's read the name, lname and num for that person:
    std::cin >> person.name;
    std::cin >> person.lname;
    std::cin >> person.num;

    // and add the person to the list of persons
    persons.push_back(person); 
}
for(i=0;i<n;i++)
{
    std::cout << persons.at(i).name << " " << persons.at(i).lname << " " << persons.at(i).num << std::endl;
}