小编hit*_*ter的帖子

Typedef struct vs struct?|定义差异|

以下块 main() 在每个函数(全局范围)

第1块之外和之前:

struct flight{
int number;
int capacity;
int passengers;
};
Run Code Online (Sandbox Code Playgroud)

有了这个,你可以创建数组,指针,变量与写作形成对比}var; (它只定义了这个自定义数据类型的一个变量(struct flight))

第二块:

typedef struct flight{
int number;
int capacity;
int passengers;
}flight;
Run Code Online (Sandbox Code Playgroud)

声明这将创建一个数据类型的飞行,而不必编写结构飞行的所有时间
在一个块的末尾写我的问题是,为什么需要typedef的飞行第二次?
这有点令人困惑(它看起来只是该数据类型的变量)

c struct typedef definition

6
推荐指数
1
解决办法
9735
查看次数

为什么在打印多个字符串(%s)时printf()会留下换行符,并且该如何解决?

我制作了一个接受字符串(名字/姓氏)的程序,但是我不是
3岁的Phil Snowken 的典型输出,而是3 岁的
Phil
Snowken

#include <stdio.h>
#define N 10
struct data{
char fname[30];
char lname[30];
int age;
};

main()
{
    int i;
    struct data base[N];
    for(i=0;i<N;i++){
        printf("\n-------------------------");
        printf("\nPeople Data(%d remaining)\n",N-i);
        printf("---------------------------\n\n");
        printf("\nFirst Name ");
        fgets(base[i].fname,30,stdin);
        printf("\nLast Name ");
        fgets(base[i].lname,30,stdin);
        printf("\nAge ");
        scanf(" %d",&(base[i].age));
        fflush(stdin);
    }

    for(i=0;i<N;i++)
        printf("%s %s Year:(%d)",base[i].fname,base[i].lname,base[i].age);
    return 0;   
}
Run Code Online (Sandbox Code Playgroud)

c arrays string printf

5
推荐指数
1
解决办法
7180
查看次数

运算符在访问包含它的vector元素时,类对象的重载不起作用?

我已经完成了以下运算符重载,它在预期的下面的类对象上工作.但是当我将此指针传递给向量中的类对象时,输出流不起作用(以我定义的方式)

对于这类问题我很抱歉,但我是C++的新手,我不知道如何准确地提出这个问题.

运算符重载:(shape.cpp)

ostream &operator<<(ostream &output, Shape &S)
{
    output << S.name << " (" << S.id << ") " << endl;
    return output;
}
Run Code Online (Sandbox Code Playgroud)

内部形状类(shape.h): friend ostream& operator<<(ostream& output, Shape &S);

main.cpp:

#include <iostream>
#include <vector>
using std::cout;
int main()
{
    vector<Shape*> array;
    Shape * s1 = new Shape("Square");

    array.push_back(s1);
    cout << *s1; //Prints "Square (1)" 
    cout << array[0]; //Prints "007CADC8" maybe hex address of vector element?

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ vector operator-overloading c++11

0
推荐指数
1
解决办法
167
查看次数

标签 统计

c ×2

arrays ×1

c++ ×1

c++11 ×1

definition ×1

operator-overloading ×1

printf ×1

string ×1

struct ×1

typedef ×1

vector ×1