洛谷之奇怪的换行符

windows环境下的换行符为\r\n,linux环境的换行符为\n.

常见“我在本地/xxOJ AC了、洛谷却不过”的原因
Linux中换行符是’\n’而Windows中是’\r\n’(多一个字符),有些数据在Windows中生成,而在洛谷评测机Linux环境下评测。这种情况在字符串输入中非常常见。
来源帮助-洛谷

解决方法:

读取字符串时我们只要把换行符看成两个就能解决问题.

while(ch=='\r'||ch=='\n')ch=getchar();
while(ch!='\n'&&ch!='\r'){
//读入
}

每次读入之前先去掉上次读入后剩下的换行符,在开始新的读入.

char s[100];
scanf("%[^\r]%*c",s);getchar();

或者每次读入的时候直接去掉结尾的两个换行符.

posted @ 2022-03-01 09:53  何太狼  阅读(453)  评论(0编辑  收藏  举报