c++在线编写程序,常见的输入数据格式 和本地编译器输入的区别
来源:互联网 发布:java 全角半角转换 编辑:程序博客网 时间:2024/05/20 22:00
PS:在线编程系统的输入方式和vs输入方式稍微有点不一样:所以直接用在线编的程序用vs调试的时候就有点不同,因为在线编程系统会自动判断数据输入的结束,而在vs中就需要手动控制输入的结束。
(1)输入一行数组,中间用空格隔开:
例如:输入 1 2 3 4 5 2 8
在线编程就可以这么写:
int main(){int temp;vector<int> array;while (cin >> temp){array.push_back(temp);}return 0;}
在vs编译器上就要这么写:
int main(){int temp;vector<int> array;char c;cin >> temp;array.push_back(temp);while ((c = getchar()) != '\n'){cin >> temp;array.push_back(temp);}return 0;}
需要加入头文件:#include<sstream>
(2) 输入多行,第一行数字一般表示每行输入的个数
例如输入:5 6
1 2 3 4 5
4 5 6 6 7 7
这种情况在vs和在线输入的情况都是一样的:
根据题目的要求,可以把每一行数字放入每一个数组中
int main(){int a, b;cin >> a >> b;vector<int> arrayA, arrayB;int temp;for (int i = 0; i < a; i++){cin >> temp;arrayA.push_back(temp);}for (int i = 0; i < b; i++){cin >> temp;arrayB.push_back(temp);}return 0;}
也可以放入一个大数组中:
int main(){int a, b;cin >> a >> b;vector<int> array;int temp;for (int i = 0; i < (a + b); i++){cin >> temp;array.push_back(temp);}return 0;}
(3) 输入一个字符串存入字符数组中
输入:Abncd123678@@&&abnssdd
因为string类型本来就是一个数组类型:int main(){string array;getline(cin, array);//或者直接cin>>array; 但是在vs编译器中只能用getlinereturn 0;}
(4) 输入一行数组用逗号或其他符号隔开
输入:
1,2,3,4,3,4,5
方法一:
int main(){string line;getline(cin,line);vector<int> array;for (int i = 0; i < line.length(); i++){if (line[i] != ','){int temp = (int)(line[i] - '0');//将char类型转换成Intarray.push_back(temp);}} return 0;}
方法二:参考网上
int main(){string s;cin >> s;vector<int>nums;char *str = (char *)s.c_str();//string --> charconst char *split = ",";char *p = strtok(str, split);//逗号分隔依次取出int a;while (p != NULL) {sscanf(p, "%d", &a);//char ---> intnums.push_back(a);p = strtok(NULL, split);}return 0;}
这种方法加入头文件:#include "stdio.h"
(5) 输入多行有字数限制的数字,但是行数未知
1 2 3 3
2 3 4 4
5 6 6 7
3 4 6 7
........
这种情况也需要区分一下:
在线编程:
int main(){int a, b, c, d;vector<int> array;while (cin >> a >> b >> c >> d){array.push_back(a);array.push_back(b);array.push_back(c);array.push_back(d);}return 0;}
Vs编译器:
根据测试用例,自己定义输入的条件限制吧,比如测试用例为4行,定义循环个数为4;
int main(){int a, b, c, d;vector<int> array;int num = 4;while (num--){cin >> a >> b >> c >> d;array.push_back(a);array.push_back(b);array.push_back(c);array.push_back(d);} return 0;}
(6) 让循环读取一行数字“1 2 3;4 5 6;7 8 9”
int main(){string line;getline(cin, line);vector<int> array;for (int i = 0; i < line.length(); i++){if (line[i] != ' '){if (line[i] == ';'){cout << "要不要放入下一个数组" << endl;}else{int temp = (int)(line[i] - '0');//将char类型转换成Intarray.push_back(temp);}}} return 0;}
后序补充。。。。。
阅读全文
0 0
- c++在线编写程序,常见的输入数据格式 和本地编译器输入的区别
- imshow的输入数据格式
- c程序的输入和输出
- 单链表的输入和输出(c语言编写)
- Line输入和mic输入的区别
- Qt编写的程序无法输入中文
- C语言输入引起的常见异常
- 程序的输入和输出
- C的输入和输出
- C 的输入和输出
- 常见的简易表单和输入标签
- 通过编写递归函数,编写c程序从键盘中输入一个数字和计算符号,算出该数字的和或者是积
- 用C语言编写一个程序将输入的十进制数转化成16进制?
- 用C语言编写程序,判断输入的一个字符串是否是回数
- C程序设计语言,练习1-13,编写一个程序,打印输入单词的直方图(垂直方向)
- 编写程序,用户输入10个数字,找出最大的,和最小的
- 使用C语言编写程序,计算N个整数的和(随机输入一个值,例如1到100之间所有整数的和)
- 运放中输入偏置电流和输入失调电流的区别
- Error:Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/suppor
- 深度学习平台集锦
- linux新的API signalfd、timerfd、eventfd使用说明
- jstl_foreach
- C++之学习处理模板化基类内的名称(43)---《Effective C++》
- c++在线编写程序,常见的输入数据格式 和本地编译器输入的区别
- Generator函数基础
- ZooKeeper详细解析
- 哈希表的设计与实现
- Android RecyclerView <二> fragment+ItemDecoration
- 线段的重叠 51Nod
- Shell 命令行,实现对若干网站状态批量查询是否正常的脚本
- Fence Repair
- 88. Merge Sorted Array(java)