又来送分了`求解决cin gets 等等输入问题,ACM题目

征服全世界Orz 2012-10-28 06:55:22
我在学校的在线平台ACM做题,题目如下面,第三个cin>>m还没有输入就结束了求解决办法,提交上去通过才行哦,就是main函数那3个连续输入

题目描述
有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。

输入
数字n 一行字符串数字m

输出
从m开始的子串

样例输入
6
abcdef
3
样例输出
cdef

我的代码:

include<iostream>
#include<cstdio>
using namespace std;
void abc(char a[],int n,int m,char b[])
{
int j=0;
for(int i=m-1;i<n;i++)
{
b[j]=a[i];
j++;
}
}
int main()
{
char a[100],b[100];
int n,m;
cin>>n;
gets(a);
cin>>m;
abc(a,n,m,b);
for(int i=0;i<n-m+1;i++)
{
cout<<b[i];
}
return 0;
}
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tbfuyun 2012-10-28
  • 打赏
  • 举报
回复
楼上的方法还是设置个getchar()最好
olderma 2012-10-28
  • 打赏
  • 举报
回复
另外除了cin.get()外,二楼提到getchar()以及cin.ignore()或者cin.clear();cin.sync();
都可以用来吸收回车符的
olderma 2012-10-28
  • 打赏
  • 举报
回复
一般输入数据是以回车作为结束的,但是回车并没有输入到程序里面去,如果下面再出现要输入字符之类的语句,那么这个回车就先被输入,也就是会出现错误,所以在采集数据的时候,特别是好几种数据一起采集的时候,要十分注意回车符的问题。可以使用cin.get();//吸收回车符

#include<iostream>
using namespace std;

char *mid(char *source,int length,char *destination,int start)
{
source+=start-1;
*(destination+--length+1)=0;
while(length>=0)
{
*(destination+length)=*(source+length--);
}
return destination;
}

int main()
{
char a[100],b[100];
int n,m;
cin>>n;
cin.get();//吸收回车符
gets_s(a);
cin>>m;
mid(a,n,b,m);
for(int i=0;i<n-m+1;i++)
{
cout<<b[i];
}
return 0;
}
yysjxp 2012-10-28
  • 打赏
  • 举报
回复
直接把gets(a)换为cin>>a;
yel_hb 2012-10-28
  • 打赏
  • 举报
回复
#include <iostream>
#include<cstdio>
using namespace std;
void abc(char a[],int n,int m,char b[])
{
int j=0;
for(int i=m-1;i<n;i++)
{
b[j]=a[i];
j++;
}
}
int main()
{
char a[100],b[100];
int n,m;
cin>>n;
getchar();//缓冲区的回车符,fflush(stdin)也可以
gets(a);
cin>>m;
abc(a,n,m,b);
for(int i=0;i<n-m+1;i++)
{
cout<<b[i]; //这边应该输出回车...
}
return 0;
}
征服全世界Orz 2012-10-28
  • 打赏
  • 举报
回复
就好具体怎么改,求具体的代码

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧