首页 > 编程语言 >编程竞赛中 C/C++ I/O 的使用

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

时间:2024-05-11 23:54:03浏览次数:27  
标签:竞赛 读取数据 编程 C++ Hello World getline string

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!

参考资料:

标签:竞赛,读取数据,编程,C++,Hello,World,getline,string
From: https://www.cnblogs.com/shen75/p/18187387

相关文章

  • 14.GUI 编程
    1.GUI编程简介GUI:图形用户界面GUI核心技术:Swing、Awt类界面不美观需要jre环境为什么要学习:可以写出一些小工具工作时候,也可能需要维护到Swing界面,概率绩效了解MVC架构,了解监听2.AWT类2.1.Awt介绍包含了很多类和接口元素:窗口、按钮、文本框java.awt包......
  • LOTO示波器动作编程功能(命令批处理)
     动作编程功能是为了方便客户根据自己的应用场景,做到一个按键就连续做多个示波器操作,从而降低了对操作人员的技术要求,做到傻瓜式操作。之前LOTO有个类似的功能,是把示波器的基础设置根据不同的测试场景存成不同的设置文件,需要时可以选择合适的场景设置导入进来这个设置文件。它和......
  • EasyLogger - 一款超轻量级、高性能的 C/C++ 日志库
    1、EasyLogger-一款超轻量级、高性能的C/C++日志库EasyLogger是一款超轻量级(ROM<1.6K,RAM<0.3K)、高性能的C/C++日志库,非常适合对资源敏感的软件项目,例如:IoT产品、可穿戴设备、智能家居等等。相比log4c、zlog这些知名的C/C++日志库,EasyLogger的功能更加简单,提供......
  • C++_函数式编程-以及常用序列化
    函数式编程函数式编程是一种编程范式,它强调程序的构建是通过应用(applying)和组合函数(composingfunctions)来实现的函数式编程属于“结构化编程”的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用 LambdaCalculus函数式编程语言早期的函数式......
  • C和C++中size sizeof strlen length的对比
    一、sizeof()sizeof是一个操作符,它在编译期间确定的,返回的是静态大小。它可以应用于基本类型、类类型、数组和指针等。例如:sizeof(int)或sizeof(array)。对于数组,sizeof返回整个数组的大小(包括所有元素)。对于指针,sizeof返回指针本身的大小(通常取决于平台和编译器,例如在3......
  • gcov - 标准c/c++代码覆盖率测试工具+lcov - GCC测试覆盖率的前端图形展示工具+gprof
    1、advent-calendar-of-circuits-2020-一个月每天用KiCad设计一个PCB项目GregoryDavill是来自澳大利亚的一个技术牛人,在开源硬件领域非常有名且活跃。他在2020年12月坚持每一天设计一个电路板,用KiCad完成电路设计到PCB的布局布线完成,这便是advent-calendar-of-circuits-......
  • 嵌入式系统设计的轻量级框架+在Linux中用于外围设备访问C库+自研的编程语言和集成开发
    1、mr-library-一个专为嵌入式系统设计的轻量级框架mr-library是一个专为嵌入式系统设计的轻量级框架,模块化的软件架构充分考虑了嵌入式系统的资源和性能要求。通过提供标准化的设备管理等,极大地简化了嵌入式应用的开发难度,帮助开发者快速构建嵌入式应用程序。设备框架 为......
  • 理解 iOS 中的多线程编程
    在iOS应用开发中,多线程编程是一项关键技术,可以帮助应用实现更好的性能和响应性。本文将详细解释iOS中的多线程编程,并讨论如何在应用中正确地使用多线程以提高性能和响应性。1.什么是多线程编程?多线程编程是指在一个应用程序中同时执行多个线程(线程是进程中的执行单元),从而实......
  • C++中的string
    一、定义和初始化string1、默认初始化:std::stringstr;//str是一个空字符串2、使用字面值初始化:std::stringstr1="Hello,World!";//str1包含字符串"Hello,World!"3、使用字符数组初始化:chararr[]="Hello,World!";std::stringstr3(arr);//str3包含字......
  • 探究:响应式编程(Reactive Programming)
    在当今软件开发领域,响应式编程(ReactiveProgramming)成为了一个备受关注的话题。它提供了一种新的编程范式,与传统的命令式编程有着显著的不同。本文将详细讲解什么是响应式编程,以及它与传统的命令式编程的不同之处。1.什么是响应式编程?响应式编程是一种编程范式,它基于数据流和变......