在线编程的简单输入输出
Posted zero-ng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线编程的简单输入输出相关的知识,希望对你有一定的参考价值。
# 一、输入
## 1.循环输入
```while(cin>>a>>b)```
//一直循环就不使用条件跳出,根据条件判断跳出就在循环中添加判断跳出语句
//特殊的循环判断语句:
```if (cin.get() == \'\\n\')```
cin.get()是在扫描器中一个一个读取输入,空格和回车也可以被读取
## 2.根据输入确定循环次数
```cin>>n;while (n-->0)```
## 3.输入转换
cin.get()可以单个以字符形式读入数据,之后进行数据转换
转换方法如下:
```
char s[15] = "123.432,432";
int n;double f1;int f2;//n是转换字符个数
sscanf(s,"%lf , %d%n " , &f1,&f2,&n) ;
```
C++中另外也有对应的转换函数在头文件stdlib.h里面,对应的函数为:
itoa(integer to alphanumeric)表示从整型到字符串
atoi(alphanumeric to integer)表示从字符串到整型
```
char ch[5],ch2[5];
int a = atoi(ch);//ch表示需要转换的字符
cout << a << endl;
_itoa_s(a,ch2,10);//a表示需要转换的数字,ch2表示转换后的字符,10是数字转换的进制
cout << ch2 << endl;
```
读入数字和字符的组和的时候,可以使用cin之后再使用cin.get()来读取字符,之后的数字又可以重新进行读取了
```
int a, b,;char ch[3];
cin >> a;
ch[0] = cin.get();
cout << a << endl;
cin >> b;
ch[1] = cin.get();
cout << b << endl;
```
## 4.根据输入动态分配内存
```
int a;
cin>>a;
int *p=NULL;
p=new int[a];
...
delete [] p;
```
# ps
C++中有系统定义的排序函数sort在头文件algorithm中
```
int a[]={2,4,1,3,5};
sort(a,a+5);//第一个参数是数据的第一个地址,第二个是最后一个数据的地址,还有第三个参数,用于排序顺序,默认为从小到大
sort(a,a+5,compare);//从大到小排序
bool compare(int a,int b){
return a>b;
}
```
## 5.cin.get和cin.getline
[转csdn查看具体细节](https://blog.csdn.net/a3192048/article/details/80303547)
# ps
关于stringstream
把string类型的数据进行数据流操作,可以进行数据的自动转换
```
string s;
getline(cin,s);//输入abc 123
stringstream stream(s);//也可以直接stream<<"this is input";
int a;
string s1;
stream >> s1 >> a;
cout << a << " " << s1 << endl;
stream.str(" ")
```
# 二、输出
#
## 1.循环输出
除了for(int i...),对于遍历输出,使用for(auto:c n)更方便快捷
## 2.使用逗号,最后一个没有逗号
这种就是在循环中最后一个不输出,自己手动写一个cout
以上是关于在线编程的简单输入输出的主要内容,如果未能解决你的问题,请参考以下文章