为啥cin能过,cin.getline不行?

P1914 小书童——凯撒密码

dp_hater @ 2022-06-23 21:01:32

这两个...天差地别


by Super_Supper @ 2022-06-23 21:41:42

@ppip

可是我用一遍 getchar 也会出错


by ppip @ 2022-06-23 21:46:52

@Trinitrotoluene 这玩意ce


by Trinitrotoluene @ 2022-06-23 21:49:13

@ppip 不好意思,是 ignore()


by ppip @ 2022-06-23 21:50:52

@Trinitrotoluene 没毛病

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;cin>>n;
    char s[50];
    cin.ignore(114514,'\n');
    cin.getline(s,51);
    for (int i{0};s[i];++i)
        putchar((s[i]-'a'+n)%26+'a');
}

by Trinitrotoluene @ 2022-06-23 21:51:42

@ppip 他的 ignore 里面是空白的


by ppip @ 2022-06-23 21:53:54

@Trinitrotoluene 数据有 '\r',所以不行 https://www.luogu.com.cn/record/77798318


by Trinitrotoluene @ 2022-06-23 21:55:28

@ppip 你是指什么不行?


by ppip @ 2022-06-23 21:56:21

ignore 单个字符不行


by Trinitrotoluene @ 2022-06-23 21:59:44

@ppip 试了一下,两个ignore可以过


by ppip @ 2022-06-23 22:01:53

@Trinitrotoluene 对呀。。。

我都说了他换行符是\r\n,删两个当然行。。。

cin.ignore() 等价于 getchar()。。。


上一页 | 下一页