您现在的位置是:首页 >技术教程 >精准核酸检测(C++)网站首页技术教程
精准核酸检测(C++)
简介精准核酸检测(C++)
一、如何将输入中的逗号略去
1、stoi函数
名称解析:string to int的转化,将字符串常量转化为int值
以下代码输出为:10
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str="10";
cout<<stoi(str);
}
2、getline函数
getline(A,B,C):A是输入输出流,可以为cin或istringstream;B是存储处;C是在哪个字符处停止,默认为‘ ’,也就是换行符;
3、使用cin.get()
婕婕天帝同学在刷OD题库时,遇见了输入包含逗号的情况,查阅了一些博主的代码,他们都是用上面两个函数与sstream的头文件使用的。
但婕婕天帝并没有用!她使用了cin.get函数!
(1)首先明确从键盘中输入的本质(包含408计组与操作系统内容)
具体可参照408真题2023年第46大题。
键盘输入是中断I/O, 首先输入到内核缓冲区,当运行到相应输入代码时(例如:cin>>15),进程从内核缓冲区输入到用户缓冲区,而使用cin时,cin会忽略缓冲区中的诸如空格、换行等符号,但cin.get()函数会读取缓冲区中的所有字符,所以代码如下:
//二维数组充当矩阵
vector<vector<int>> s(n, vector<int>(n, 0));
char temp;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> temp;
s[i][j] = temp - '0';
cin.get();
}
}
输入:
1,1,0,1,0
1,1,0,0,0
0,0,1,0,1
1,0,0,1,0
0,0,1,0,1
并不需要额外判断是否输入了一整行,因为换行符也被cin.get()读取了。
关于2024年408真题的某一个选择题,关于键盘输入最终是输入到哪了,婕婕天帝在写代码时从实践角度论证了该题:
在VS运行中,可以从键盘中输入多于当前代码的字符,但并不会在运行窗口体现多余输入值;此时就表明多余的输入字符并没有直接在用户缓冲区内;
而接下来运行下一行输入时,上次多余的字符直接显示在了运行窗口内。
说明其实是在内核缓冲区内存储的。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。





QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
U8W/U8W-Mini使用与常见问题解决
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结