我的文件中有2个函数,一个函数用于在struct('vpis()')中输入信息,另一个函数用于打印出其内容('izpis()')。 输入功能不会保存我输入的信息。 这是代码:

#include <iostream>
#include <string>
using namespace std;

enum TIP_NASLOVA {
    STALNI,
    ZACASNI
};

struct Naslov {
    string ulica;
    string posta;
    int postna_stevilka;
    TIP_NASLOVA tip;
};

struct Oseba {
    string ime;
    string priimek;
    int starost;
    Naslov naslov;
};

void izpis(Oseba oseba) {
    cout << "IZPIS VNOSA" << endl << endl;
    cout << "Ime: " << oseba.ime << endl;
    cout << "Priimek: " << oseba.priimek << endl;
    cout << "Starost: " << oseba.starost << endl;
    cout << "Tip Naslova: " << oseba.naslov.tip << endl;
    cout << "Posta: " << oseba.naslov.postna_stevilka << " " << oseba.naslov.posta << endl;
    cout << "Naslov: " << oseba.naslov.ulica << endl;
}

void vpis(Oseba oseba) {
    int tip;
    cout << "VPIS PODATKOV NOVEGA VNOSA" << endl << endl;
    cout << endl << "VPISI IME: ";
    cin >> oseba.ime;
    cout << endl << "VPISI PRIIMEK: ";
    cin >> oseba.priimek;
    cout << endl << "VPISI STAROST: ";
    cin >> oseba.starost;
    cout << endl << "VPISI TIP NASLOVA ( 1-STALNI / 2-ZACASNI ): ";
    cin >> tip;

    switch (tip){
        case 1:
            oseba.naslov.tip = STALNI;
            break;
        case 2:
            oseba.naslov.tip = ZACASNI;
            break;
        default:
            cout << "Napaka! Izbrali ste napacen tip naslova. " <<endl;
            break;
    }

    cout << endl << "VPISI POSTNO STEVILKO: ";
    cin >> oseba.naslov.postna_stevilka;
    cout << endl << "VPISI POSTO: ";
    cin >> oseba.naslov.posta;
    cout << endl << "VPISI NASLOV (FORMAT:'TrgGeneralaMaistra1'): ";
    cin >> oseba.naslov.ulica;
    cout << endl;
}

int main() {
    Oseba oseba;
    int x;
    cout << "VPIS IN IZPIS OSEBNIH PODATKOV" << endl << endl;
    for (;;) {
        cout << "Dolocite zahtevano operacijo (1-VPIS, 2-IZPIS): ";
        cin >> x;
        cout << endl << endl;
        switch (x){
        case 1:
            vpis(oseba);
            break;
        case 2:
            izpis(oseba);
            break;
        default:
            cout << "Izbrali niste nobene operacije!" << endl << endl;
        }
    }

    return 0;
}

===============>>#1 票数:1

您将按将结构传递给每个函数,因此每个函数都会收到该结构的副本 ,因此,您对副本所做的任何更改都是对副本的更改,而不是对原始更改。 更改函数以通过引用传递结构。

void izpis(const Oseba &oseba)

void vpis(Oseba &oseba)

===============>>#2 票数:0 已采纳

如果要对其进行更改,则需要按引用传递该对象:)

更改void vpis(Oseba oseba) {

使void vpis(Oseba& oseba) {

  ask by user3552865 translate from so

未解决问题?本站智能推荐:

3回复

C ++将文件读入结构

使用fstreams,我打开了一个包含许多行的文件。 每组连续的4行是这样的:第一行是int,第二行和第三行是字符串,第四行是双精度。 此序列一直持续到EOF。 我正在尝试将这些行加载到struct数组中: 我试图实现的将数据加载到结构中的代码是这样的: 我要扔给这个东
2回复

在C ++中向文件写入不同的结构? [关闭]

我需要一种将三种不同类型的结构写入二进制文件的方法,以后必须对其进行搜索。 (例如,在struct A中有两个字段,一个int和一个char;在struct B中有int和long;我需要输出所有int等于键盘给定的结构)。 我知道如何将相同类型的结构写入文件以及如何搜索它们,但是我只是
2回复

C ++中的结构–从文件中读取错误

我的任务是创建一个对结构进行一些处理的程序。 我的结构与学生的成绩(考试成绩)有关。 在我的开关的第一种情况下,该函数创建结构并将其写入文件。 第二个–从文件中读取。 这是我的代码: 当我编译代码时,输​​入如下: http://take.ms/yoo5U 因此它
1回复

使用多种类型的C ++从文件中读取结构

我正在使用下面的代码从二进制文件读取结构。 假定二进制文件中有多个结构,类型为struct A,struct B和struct C,文件中出现的大小不同。 如果我想按顺序阅读所有内容,假设我知道顺序,这是正确的吗?
2回复

向量的结构,我不知道该怎么办

对于每一行文本: (会有数量未知的行,每行的格式都相同。) 格式: 我想将每个学生的每一部分放入自己的结构中。 我将结构设置如下: 我的文件输入功能如下: 在文件输入中,我创建了一个向量,但是不确定如何访问它的每个单独部分或学生s ,因为似乎它只能使一个学生
3回复

逗号分隔流成结构

我有一个带有int和两个字符串的结构。 读文件时,前两个值用逗号分隔,最后一个值以换行符终止。 但是,第三个参数可以为空。 ex数据:7,约翰·多伊(John Doe),123-456-7891 123假街。 我想制作它,以便我的程序将第一个数字放入并放入int,找到逗号并将第二
1回复

将值读入数组的结构

我需要创建一个struct数组,该struct为学生(数据类型为string FirstName, string LastName, int testScore和char Grade)。 我已经为函数原型找到了逻辑,并且我学到了一些基本文件I / O。 我想在结构数组中有20个学生,并且要从
1回复

包含io.h头文件遇到一些问题,io.h文件没有结构_finddata_t

我需要使用struct _finddata_t,所以我只包含了,然后发现中没有struct _finddata_t。 我认为我需要的东西和系统拥有的不是相同的io.h文件。 以下是系统具有的io.h文件: 谁能告诉我为什么以及如何解决这个问题? 提前致谢!!
1回复

二进制文件写入顺序如何结构?

因此,我正在编写一个程序,将结构写入文件,然后再编写一个程序读取该结构。 如果结构是: http://courses.cs.vt.edu/cs2604/fall01/binio.html上的技术是否意味着将以该顺序写入并以该顺序读取?
2回复

从文件读取到结构数组

首先,我想说这是我的CS161课程的作业,所以虽然直接的答案会很好,但一个很好的解释对我来说更有帮助。 我们本周已经介绍了结构,但是我的代码有些问题。 我现在的目标是从一个名为“QBInfo.txt”的文件中读取三个结构的数组。 另外,如果有帮助我应该说kNumPlayers是一个设