C++ 附加向量。结果获胜';t打印
我试图输入a和b的整数,然后把这些整数打印在一起。例如,为a输入1234,为b输入4321将产生:1234321。我不明白为什么我的程序不打印这个。每当我输入-1时,什么都不会发生。程序运行时,我是否执行了错误的进程?谢谢你的帮助C++ 附加向量。结果获胜';t打印,c++,vector,append,C++,Vector,Append,我试图输入a和b的整数,然后把这些整数打印在一起。例如,为a输入1234,为b输入4321将产生:1234321。我不明白为什么我的程序不打印这个。每当我输入-1时,什么都不会发生。程序运行时,我是否执行了错误的进程?谢谢你的帮助 #include <iostream> #include <vector> using namespace std; vector<int> append(vector<int> a, vector<int&g
#include <iostream>
#include <vector>
using namespace std;
vector<int> append(vector<int> a, vector<int> b)
{
int n = a.size();
int m = b.size();
vector<int> c(n + m);
int i;
for (i = 0; i < n; i++)
c[i] = a[i];
for (i = 0; i < m; i++)
c[n + i] = b[i];
return c;
}
main()
{
vector<int>a, b, c;
int temp;
cin >> temp;
while (temp != -1) {
a.push_back(temp);
cin >> temp;
}
cin >> temp;
while (!cin.eof()) {
b.push_back(temp);
cin >> temp;
}
c = append(a, b);
for (int i = 0; i < c.size(); i++)
cout << c[i] << " ";
cout << endl;
}
#包括
#包括
使用名称空间std;
向量附加(向量a、向量b)
{
int n=a.size();
int m=b.size();
向量c(n+m);
int i;
对于(i=0;i>温度;
而(温度!=-1){
a、 推回(温度);
cin>>温度;
}
cin>>温度;
而(!cin.eof()){
b、 推回(温度);
cin>>温度;
}
c=附加(a,b);
对于(int i=0;i
每当我输入-1时,什么都不会发生
这是因为您当时到达了第二个cin>>temp
语句(就在while.eof()
loop之前)。这时您开始为b
vector输入值。通过在流中输入eof字符(windows上为CTRL+Z,linux上为CTRL+D)结束循环.您有两个循环,一个用于输入向量a
,另一个用于输入b
。
按一次-1将仅终止第一个循环。第二个循环由您尚未输入的eof
终止。因此,输入eof
(特定于您的系统)或让第二个循环终止于-1(在这种情况下,您需要再次输入-1).参数读取中的第二个while循环似乎是错误的。我所做的是键入任何整数,如“23432”并单击enter。然后键入另一个整数,如“64364”并单击enter。然后输入-1。我以为这将打印出“2343264364”它只是打印一个空白。尽管不必要地复制了输入向量,但您的append函数仍能工作。您应该缩小问题范围并删除不相关的代码。如果您对执行许多不同操作的代码有问题,请将其拆分为单个责任部分,然后依次测试每个部分。