C++

getline

int main()
{
    // gets(s1);
    // getchar();
    //gets(s2);

    string s;
    getline(cin,s); //只能读string,不能读char
    // 可以读空格
    //scanf("%[^
]",s1);
    // scanf("%[^
]",s2);
    cout<<s<<endl;
    return 0;
}

cin

无法读空格

scanf

char s[110];
scanf("%s",s);

另外一个不能在cb里面正常运行(但是我在一个字符串A-B题目里用这个就部分数据错误,读入改成getline()就过了,不知道为什么?!)

scanf("%[^
]",str);

gets

  1. 可以读空格,但是需要getchar()去吸收回车,否则会出错。(getchar()用在哪里我忘记了,试了一下没发现,之后遇到补)
  2. 天梯赛不能使用
  3. 读取直到换行符结束,但换行符会被丢弃,然后在末尾添加''
原文地址:https://www.cnblogs.com/OFSHK/p/13674095.html