c++获取用户的输入并格式化

一行单个数据

string str; 
cin>>str;

一行固定多个且空格隔开

int n, m;
cin >> n >> m;

在输入时,会自动做格式装换。

一行不固定多个且空格隔开

#include <sstream>
#include <string>

string str;
getline(cin, str);
stringstream ss(str);
string token;
while (ss >> token) {
       cout << token << endl;
}

一行不固定多个且指定符号隔开

#include <sstream>
#include <string>

string str;
// 第三个参数就是指定的字符
getline(cin, str, '/');
stringstream ss(str);
string token;
while (ss >> token) {
       cout << token << endl;
}

特殊格式化

#include <sstream>
#include <string>
using namespace std;
int main() {

    string inputString("123abc 123.4one two three four");
    stringstream ss(inputString);
    string s;
    int i;
    double d;
    ss >> i >> s >> d;
    cout << i << " " << s.c_str() << " " << d ;
    cout << endl;
    while (ss >> s)
        cout << s << " ";
    cout << endl; 
    return 0;
}

执行效果
在这里插入图片描述

C++中,获取音频输入设备支持的格式通常涉及到音频处理库,如PortAudio、JACK Audio Connection Kit等。这些库提供API来查询系统上可用的音频设备及其支持的音频格式。下面是一个简化的步骤概述: 1. **包含必要的头文件**:首先需要包含相关的音频处理库头文件,例如`#include <portaudio.h>`。 2. **初始化 PortAudio**:调用PortAudio的函数,比如`Pa_Initialize()`,以便后续操作。 3. **列出音频输入源**:通过调用`Pa_GetDefaultInputDevice()`获取默认的音频输入设备,然后使用`Pa_GetDeviceInfo()`来获取设备信息,其中包括它所支持的音频格式列表。 4. **解析设备信息**:从设备描述结构中找到`PaStreamInfo`部分,其中会有`sampleFormatTags`字段,这个字段包含了设备支持的音频格式标识符,通常是某种音频数据格式的枚举值,如`paInt8`, `paInt16`, `paFloat32`等。 5. **检查格式支持**:遍历这些格式,判断是否是你感兴趣的格式,例如检查每个格式对应的`PaFormat`枚举值。 示例代码片段(简化版): ```cpp #include "portaudio.h" PaError err; PaStreamParameters params; PaDeviceInfo* device; // 初始化 PortAudio err = Pa_Initialize(); if (err != paNoError) { // 处理错误... } // 获取默认输入设备 device = Pa_GetDefaultInputDeviceInfo(); if (!device) { // 处理设备未找到的错误... } // 获取设备信息 params.device = device->index; // 设备索引 params.sampleFormat = PaInt16; // 需要检查支持的格式 // 检查设备是否支持某个特定格式 if (Pa_IsFormatSupported(params, sizeof(params.formatTag))) { // 格式支持,打印或保存格式信息 } else { // 格式不支持... } // 清理并关闭 Pa_Terminate(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值