输入一行字符串:getline(cin,str)
char a[60];
gets(a);
cout<<a;//apple come on
string b;
getline(cin,b);
cout<<b;//apple come on
string a;
while(getline(cin,a)){ //不断输入一行字符串
}
输入一行,按 ; 分割
while(getline(cin, s, ';')){
}
连续输入数据:while(cin>>t)
int a[100];
int t=0;
while(cin>>a[t])
{
if(cin.get()=='\n') break;
t++;
}
vector中也是一样
vector<int> a;
int t;
while(cin>>t)
{
a.push_back(t);
if(cin.get()=='\n' ) break;
}
通过 字符变量 存储空格和回车键方法
int a[100];
char s;
int i=0;
while(s!='\n')
{
scanf("%d",&a[i]);//输入int
s=getchar();//接收输入数字后面的字符
i++;
}
```题目 1094: 字符串的输入输出处理
时间限制: 1Sec 内存限制: 64MB 提交: 16151 解决: 5840
题目描述
字符串的输入输出处理。
输入
第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。
输出
先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。
样例输入
2
www.dotcpp.com DOTCPP
A C M
D O T CPP
样例输出
www.dotcpp.com DOTCPP
A C M
D
O
T
CPP
> 注意事项:
> 1.输出每一行字符串后,都要输出空白一行,即换行;也就是两个回车;
> 2.带空格输入用gets(),输出用puts()(这是之前逆序输出的经验,用循环单个输入单个输出提示越界)
>
> 3.不带空格输入用scanf("%s",);输出printf("\n")即可;其它也行,最终两个换行符就行;
>
> 4.程序中getchar()用来读取输入整数后缓存区中的回车;(一定要用getchar())
```cpp
```clike
char a[2000];
int n;
int main()
{
cin>>n;
getchar();
for(int i=1;i<=n;i++)
{
gets(a);puts(a);cout<<endl;
}
while(scanf("%s",a)!=EOF)//过滤掉空格
{
cout<<a<<endl;
cout<<endl;
}
return 0;
}