文章

8

粉丝

71

获赞

0

访问

9.1k

头像
1698文件 处理
我要提问
发布于2024年3月22日 10:32
阅读数 1.3k

为啥会多输出换行啊

​#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<math.h>
#include<string>
#include<utility>

using namespace std;
int main(){
string s;
int flag=0;
while(getline(cin,s)){
	if(flag==1){
		int pos;
		for(int i=0;i<s.size();i++){
			if(i+1<s.size()&&s[i]=='*'&&s[i+1]=='/'){
				flag=0;
				pos=i+2;
				break;
			}
		}
		if(flag==0&&pos<s.size()){
			for(int j=pos;j<s.size();j++)cout<<s[j];
			//cout<<endl;
		}
	}else{
		int flag2=0;
		for(int i=0;i<s.size();i++){
			if(i+1<s.size()&&s[i]=='/'&&s[i+1]=='*'){
				int flag3=0;
				for(int j=i+2;j<s.size()-1;j++){
					if(s[j]=='*'&&s[j+1]=='/'){
						flag3=1;
						break;
					}
				}
				if(flag3==1){
					flag=0;
					break;
				}else{
					flag=1;
					break;
				}
			}
			else if(i+1<s.size()&&s[i]=='/'&&...
登录查看完整内容


登录后发布评论

7 条评论
snake VIP
2024年3月22日 12:35

可以在代码里加两行代码,在本地文件中调试

在桌面新建一个1.in的文件,然后把输入样例复制到文件中,然后运行,之后就可以在桌面看到一个1.out的输出文件就是结果

赞(0)
snake VIP
2024年3月22日 12:31

跑了一下修改后的代码,空格的数量没有控制好

赞(0)
哈哈宝宝游泳 VIP
2024年3月22日 11:33

赞(0)
snake VIP
2024年3月22日 10:54

这里需要判断一下如果//的注释是开头,那么下面那个flag2的换行就不要输出

赞(0)

哈哈宝宝游泳 : 回复 snake: 如果//是开头的话那个flag2就等于0本来就不会输出吧

2024年3月22日 11:05

snake : 回复 哈哈宝宝游泳: 这个开头有可能是空格//,你的没有过滤空格,所以会把空格单独当做一行输出,注意看下输入样例

2024年3月22日 11:18

哈哈宝宝游泳 : 回复 snake: 改完之后和正确输出感觉一样啊,他还是判我错误

2024年3月22日 11:35