首页 > 其他分享 >终端输入变长vector的方法

终端输入变长vector的方法

时间:2024-06-10 22:23:39浏览次数:17  
标签:num Ctrl 整数 vector 变长 include 输入 终端

功能:从终端输入一串数字序列,空格分隔,赋值给vector<int>容器

方法1.换行符结束--需使用getline进行字符串转换整数处理,使用字符串流处理函数(stringstream)

代码:

#include <iostream>
#include <vector>
#include <string>
#include<sstream>//要包含这个才能用stringstream

using namespace std;

// 重载输入运算符,以换行符作为结束标志
istream& operator>>(istream& input, vector<int>& vec) {
    string line;
    getline(input, line); // 读取一行输入

    istringstream iss(line); // 使用字符串流来解析整数
    int num;
    while (iss >> num) { // 从字符串流中读取整数
        vec.push_back(num); // 将读取的整数添加到向量中
    }
    return input; // 返回输入流
}

int main() {
    vector<int> myVec;
    cout << "Enter integers separated by spaces (换行结束): ";
    cin >> myVec; // 使用重载的输入运算符读取整数到向量中

    // 输出向量中的整数
    cout << "You entered: ";
    for (int num : myVec) {
        cout << num << " ";
    }
    cout << std::endl;

    return 0;
}

 运行:

运行结果
Enter integers separated by spaces (换行结束): 12 3 4 6 7 8
You entered: 12 3 4 6 7 8

方法2.Ctrl+D结束--只有输入Ctrl+D才是标准EOF,换行会被当做输入,一直在循环中

代码:

#include<iostream>
#include<vector>

using namespace std;


void printfvector(vector<int> v)
{
	//cout << "整数向量容器的长度为" << v.size() << endl;
	cout << "整数向量容器的内容为";
	for (int it : v)
		cout << it << "  ";
}

istream &operator>> (istream& in,vector<int>& v)
{
	int num;
	while (in >> num) { // 循环读取输入流中的整数
		v.push_back(num); // 将读取的整数添加到向量中
	}
	return in; // 返回输入流
}

int main()
{

	vector<int> t;
	cout << "输入数字序列:";
	cin >> t;

	printfvector(t);

}

运行:

输入数字序列:1 2  3 4 5 6 7 ^D(这里按ctrl+D表示输入流的结束)
整数向量容器的内容为1  2  3  4  5  6  7

 在 Unix/Linux 系统上,Ctrl+D 被用作表示输入流结束的符号,通常被称为 EOF(End of File)。当你在终端输入内容时,按下 Ctrl+D 会告诉程序你已经输入完毕,这对于标准输入流是很有用的。

在 C++ 中,当你使用 cin 从标准输入流(通常是键盘)读取数据时,Ctrl+D 表示输入结束。这是因为 cin 会等待输入流结束或者遇到错误才会停止读取。在终端中,Ctrl+D 表示你已经输入完毕,因此 cin 会停止读取数据并继续执行程序。

 

标签:num,Ctrl,整数,vector,变长,include,输入,终端
From: https://www.cnblogs.com/mingyuer/p/18241136

相关文章

  • 判断终端色彩支持情况的方法
    判断终端色彩支持情况的方法24位真彩色在终端中可以使用以下命令来测试终端是否支持24位真彩色:echo-e"\x1b[38;2;255;100;0mTrueColorTest\x1b[0m"这个命令会输出一个带有真彩色的字符串,如果终端支持24位真彩色,那么输出的字符串应该是橙色的。如果终端不支持24位真彩色,那么......
  • 判断终端色彩支持情况的方法
    判断终端色彩支持情况的方法24位真彩色在终端中可以使用以下命令来测试终端是否支持24位真彩色:echo-e"\x1b[38;2;255;100;0mTrueColorTest\x1b[0m"这个命令会输出一个带有真彩色的字符串,如果终端支持24位真彩色,那么输出的字符串应该是橙色的。如果终端不支持24位真彩色,那么......
  • 判断终端色彩支持情况的方法
    判断终端色彩支持情况的方法24位真彩色在终端中可以使用以下命令来测试终端是否支持24位真彩色:echo-e"\x1b[38;2;255;100;0mTrueColorTest\x1b[0m"这个命令会输出一个带有真彩色的字符串,如果终端支持24位真彩色,那么输出的字符串应该是橙色的。如果终端不支持24位真彩色,那么......
  • 判断终端色彩支持情况的方法
    判断终端色彩支持情况的方法24位真彩色在终端中可以使用以下命令来测试终端是否支持24位真彩色:echo-e"\x1b[38;2;255;100;0mTrueColorTest\x1b[0m"这个命令会输出一个带有真彩色的字符串,如果终端支持24位真彩色,那么输出的字符串应该是橙色的。如果终端不支持24位真彩色,那么......
  • 判断终端色彩支持情况的方法
    判断终端色彩支持情况的方法24位真彩色在终端中可以使用以下命令来测试终端是否支持24位真彩色:echo-e"\x1b[38;2;255;100;0mTrueColorTest\x1b[0m"这个命令会输出一个带有真彩色的字符串,如果终端支持24位真彩色,那么输出的字符串应该是橙色的。如果终端不支持24位真彩色,那么......
  • 练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让
    练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让其他用户通过快捷键Ctrl+C来强制结束该程序,所以要求现在设计该程序。#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<signal.h>#include<time.h>//......
  • 练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让
    练习:用户设计一个程序,要求程序每隔1s就获取当前系统时间并输出到终端,但是用户不打算让其他用户通过快捷键Ctrl+C来强制结束该程序,所以要求现在设计该程序。#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<signal.h>//信号处理函数,用于忽略S......
  • 1. 如何通过SSH连接到vector rob
    #anki#vector#robot#digital-dream-labs ssh连接到vector机器人操作系统:将机器人放到充电底座上,连接电源,机器人自动启动,成功后,双击背部按钮打开蓝牙功能,打开后如下图:  打开vectorsetup控制台,这个可以自己本地运行,也可以直接访问公网上别人搭建的(https://wpsetup.......
  • 从云端到终端:青犀视频汇聚/融合平台的视频接入方式与场景应用
    一、青犀视频汇聚/融合平台由TSINGSEE青犀视频研发的EasyCVR智能融合/视频汇聚平台基于“云-边-端”一体化架构,支持视频汇聚、融合管理,兼容多协议(GA/T1400/GB28181/Onvif/RTSP/RTMP/海康SDK/Ehome/大华SDK/宇视SDK等)、多类型设备(IPC/NVR/监控平台)的接入。可通过接入AI智能分析......
  • Xshell或其他命令行终端中,提示符(prompt)中的主机名太长,影响视觉体验或阅读方便性
    如果在Xshell或其他命令行终端中,你发现提示符(prompt)中的主机名太长,影响视觉体验或阅读方便性,你可以通过修改Linux系统的配置来缩短或美化这个提示符。这里有两种方法来解决这个问题:###1.暂时修改提示符你可以在当前终端会话中临时改变提示符,这不会影响其他用户或重启后的设置。......