编程竞赛中 C/C++ I/O 的使用

C 的字符串读取

scanf以空行为分割进行读取数据。

getfgets\n为分割读取数据。读取输入直到遇到\n\0 才终止。

C++ 读取字符串

cin 以空格为分割读取数据。getline 默认以换行符为分割读取数据。在使用 getline 时,要注意处理 多个\n 连到一块的情况。当读取77\n\n77 时,第二次会读到空行,可使用while(getchar()!='\n'); 消除多余的换行符。

另外getline 的第三个参数可以指定分割符,可根据需要使用。C++11 中 getline 的一个声明:istream& getline (istream& is, string& str, char delim);

IO 同步问题

C++ iostream默认是和stdio同步的,这使得iostream的性能下降。在竞赛题目的数据量大时于就会超时。可以通过关闭io同步解决这个问题,当然也可以使用 C 语言的 stdio,完全看个人喜好(建议只用一种)。

// 关闭 C++ io 同步
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);

字符串处理常用

s.c_str() 转换为 c 风格字符串(char *s)。

s.substr(pos, len) 返回 pos 位置开始,长度为len的子串,如果字符数不够到结束为止。

s.find("string") 返回子字符串的下标,返回类型为usinged

Hello World! 输出

#include <bits/stdc++.h>

int main()
{
    puts("Hello World!");
    printf("Hello World!\n");
    std::cout << "Hello World!" << std::endl;
}

运行结果:

Hello World!
Hello World!
Hello World!

参考资料:

本文作者:TTMoon

本文链接:https://www.cnblogs.com/shen75/p/18187387

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   TTMoon  阅读(14)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑