在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;
}
可能是你的链接器设置不正确。进入菜单项ProjectProperties。然后在对话框中找到配置属性LinkerSystemSubsystem,并确保它写着 Console (/SUBSYSTEM:CONSOLE)
.
叶甫盖尼是正确的 cin.get()
并不能保证停止你的程序,因为仍有字符等待从 cin
从以前的读数中剩余的。
您的代码假设您必须输入3个数字。如果您输入的数字较少,您将看不到任何输出。
一些评论。
你的cin.get()并没有停止执行. 使用std(就像使用命名空间std)和定义自己的向量类 - 这是非常糟糕的想法.