我可以输入输入,但在visual studio 2017中用C++运行我的代码(CTRL+F5)时,我无法看到输出。

问题描述 投票:0回答:1

在visual studio 2017中用C++语言运行我的代码(CTRL+F5)时,可以输入,但是看不到输出。这段代码是通过友函数重载运算符*、">>" &"<< "来编写的,一个构造函数将向量元素初始化为零,而另一个构造函数则是通过数组来初始化向量的元素。

我的代码如下。

 //vector.h

#pragma once
const int SIZE = 3;
#include<iostream>
using namespace std;
class vector
{
    int v[SIZE];
public:
    vector();
    vector(int *x);
    friend vector operator *(vector a, int b);
    friend vector operator *(int b,vector a);
    friend istream & operator >>(istream &input, vector &x);
    friend ostream & operator <<(ostream &output, vector &y);

};

    //vector.cpp

#include "vector.h"
#include<iostream>
using namespace std;



vector::vector()
{
    for (int i = 0; i < SIZE; i++)
        v[i] = 0;

}
vector::vector(int *x)
{
    for (int i = 0; i < SIZE; i++)
        v[i] = x[i];

}
vector operator *(vector a, int b) {
    vector temp;
    for (int i = 0; i < SIZE; i++)
        temp.v[i] = a.v[i]*b;
    return temp;


}
vector operator *(int a, vector b) {
    vector temp;
    for (int i = 0; i < SIZE; i++)
        temp.v[i] = a * b.v[i];
    return temp;
}
istream & operator >>(istream &input, vector &x) {
    for (int i = 0; i < SIZE; i++)
        input >> x.v[i];
    return (input);


}
ostream & operator <<(ostream &output, vector &y) {
    output << "(" << y.v[0];
    for (int i = 1; i < SIZE; i++)
        output <<","<< y.v[i];
    output << ")";
    return (output);

}

    //main.cpp

#include "vector.h"
#include<iostream>
using namespace std;
int x[SIZE] = { 2,4,6 };
int main() {

    vector m;   
    vector v2 = x;
    cout << "Enter the elements of vector m:" << "\n";
    cin >> m;
    cout << "\n";
    vector m1, m2;
    m1 = m * 2;
    m2 = 2 * v2;
    cout << "m= "<<m<<"\n"; 
    cout << "\n";
    cout << "m1= " << m1 << "\n";
    cout << "m2= " << m2 << "\n";
    cin.get();

    return 0;


}
c++ visual-studio iostream
1个回答
0
投票

可能是你的链接器设置不正确。进入菜单项ProjectProperties。然后在对话框中找到配置属性LinkerSystemSubsystem,并确保它写着 Console (/SUBSYSTEM:CONSOLE).

叶甫盖尼是正确的 cin.get() 并不能保证停止你的程序,因为仍有字符等待从 cin 从以前的读数中剩余的。


0
投票

您的代码假设您必须输入3个数字。如果您输入的数字较少,您将看不到任何输出。

一些评论。

你的cin.get()并没有停止执行. 使用std(就像使用命名空间std)和定义自己的向量类 - 这是非常糟糕的想法.

© www.soinside.com 2019 - 2024. All rights reserved.