附加向量。结果不会打印
Appending vectors. Result won't print
我正在尝试为a和b输入整数,然后将这些整数打印在一起。例如,输入1 2 3 4表示a,输入4 3 2 1表示b将得到:1 2 3 3 4 3 2。我不明白为什么我的程序不打印这个。每当我输入-1时,什么都不会发生。程序运行时,我是否做错了流程?感谢您的帮助。
#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;
}
您有两个循环,一个输入向量a
,另一个输入b
。一次命中-1只会终止第一个循环。第二个以您尚未输入的eof
终止。因此,要么输入eof
(特定于您的系统),要么让第二个循环终止于-1(在这种情况下,您需要再次输入-1)。
你说
每当我输入-1时,什么都不会发生。
这是因为您在那个时候(就在while.eof()
循环之前)到达了第二个cin >> temp
语句。从那时开始输入b
矢量的值。通过在流中输入EOF字符(在windows中为CTRL+Z,在linux中为CTRL+T)来结束循环。
相关文章:
- C++使用 g++ 时,没有结果,没有打印
- oStream 不打印添加两个 valarray 的结果(使用运算符重载)
- cout 打印不准确的结果,printf 打印准确的结果
- 读取一组用户输入,按升序排序,然后打印结果
- 无法打印正确的结果
- 对象指针打印结果以相反的顺序进行
- GetTempPathA 函数在打印结果后崩溃
- 我定义的反向函数不是打印结果
- 声明双重给它一个值0,但打印结果意外变化
- 尝试将二进制数组转换为十六进制C++然后打印结果
- 在WINDBG中调用C 方法实例并打印结果
- infix/postfix/prefix程序.想要使用我的printresult()函数打印结果.需要帮助获得输出
- 计算文本文件中的单个字母并打印结果 - 错误的输出 C++
- 在C MBED中使用strstr,打印结果
- 没有语法错误,但没有打印结果
- 如果命令不只是打印结果,而是进入某种交互模式,如何处理来自C++的终端命令执行的输出?
- HTML词法分析器在c++中如何打印结果
- 迭代器遍历一对向量,并使用std::copy打印结果
- void() 问题 - 它不打印结果
- 如何将排序函数应用于字符串.find( ) 以按字母顺序打印结果