0
点赞
收藏
分享

微信扫一扫

【图论经典题目讲解】CF715B - Complete The Graph

不会弹吉他的二郎腿 2024-02-16 阅读 7

前言

在C++中,输入与输出是程序与用户进行交互的基本方式。C++提供了多种方式进行数据的输入与输出,其中最常用的是printfscanfcincout。此外,我们还会讨论如何取消cincout的同步流,以及了解各种转义字符的用法。

1.printf函数

printf是C语言标准库中用于格式化输出的函数,它在C++中依然可用。printf函数可以输出各种类型的数据,包括整数、浮点数、字符和字符串等。

int printf(const char* format, ...);

示例:

#include <cstdio>  
  
int main() {  
    int a = 10;  
    float b = 20.5;  
    printf("整数:%d,浮点数:%f\n", a, b);  
    return 0;  
}

输出

整数:10,浮点数:20.500000
格式化符号描述示例
%d整数(十进制)printf("%d", 123); 输出 123
%c字符printf("%c", 'A'); 输出 A
%s字符串printf("%s", "Hello"); 输出 Hello
%f浮点数(十进制)printf("%f", 3.14159); 输出 3.141590
%e浮点数(科学计数法)printf("%e", 3.14159); 输出 3.141590e+00
%E浮点数(科学计数法,大写E)printf("%E", 3.14159); 输出 3.141590E+00
%g浮点数(根据大小自动选择%f或%e)printf("%g", 3.14159); 输出 3.14159
%G浮点数(根据大小自动选择%f或%E)printf("%G", 3.14159); 输出 3.14159
%%输出百分号%printf("%%"); 输出 %
%o整数(八进制)printf("%o", 10); 输出 12
%x整数(小写十六进制)printf("%x", 255); 输出 ff
%X整数(大写十六进制)printf("%X", 255); 输出 FF
%u整数(无符号十进制)printf("%u", 4294967295U); 输出 4294967295
%lu长整数(无符号十进制)printf("%lu", 4294967295UL); 输出 4294967295
%llu长长整数(无符号十进制)printf("%llu", 18446744073709551615ULL); 输出 18446744073709551615

2.scanf 函数

scanf函数用于从标准输入(通常是键盘)读取格式化的输入。与printf类似,scanf也使用格式化字符串来指定输入数据的类型和格式。

语法:

int scanf(const char* format, ...);

示例:

#include <cstdio>  
  
int main() {  
    int a;  
    float b;  
    printf("请输入一个整数和一个浮点数:\n");  
    scanf("%d %f", &a, &b);  
    printf("你输入的整数是:%d,浮点数是:%f\n", a, b);  
    return 0;  
}

用户输入:

15 30.75

输出:

你输入的整数是:15,浮点数是:30.750000

3.cin 和 cout

在C++中,cin和cout是iostream库中的两个对象,分别用于从标准输入读取数据和向标准输出写入数据。它们比scanf和printf更加面向对象,并且与C++的风格更加一致。

  • cin:用于从标准输入(键盘)读取数据。

  • cout:用于向标准输出(屏幕)输出数据。

示例:

#include <iostream>  
  
int main() {  
    int a;  
    float b;  
    std::cout << "请输入一个整数和一个浮点数:";  
    std::cin >> a >> b;  
    std::cout << "你输入的整数是:" << a << ",浮点数是:" << b << std::endl;  
    return 0;  
}

用户输入:

20 40.25

输出:

你输入的整数是:20,浮点数是:40.25

cin是默认以空格、回车作为间隔的,所以不会读到输入中的空格和回车,如果你想读取一整行的字符串,可以尝试getline()函数或者gets()函数。

4.取消同步流

默认情况下,cin和cout与scanf和printf是同步的,这意味着在读取和输出之间会有缓冲。有时为了提高效率,我们可能需要取消这种同步。

有些题目的输入输出较大(例如到了几百万),如果不取消同步流将导致输入输出很慢从而超时。

ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);

示例:

#include <iostream>  
  
int main() {  
	// 取消同步  
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);  
    int a;  
    float b;  
    std::cin >> a >> b;  
    std::cout << a << " " << b << std::endl;  
    return 0;  
}

5.转义字符

转义字符是一种特殊的字符序列,用于表示不可打印的字符或具有特殊含义的字符。以下是一些常用的转义字符:

转义字符描述
\n换行
\t制表符(Tab)
\b退格
\r回车
\反斜杠
"双引号
单引号

示例:

#include <iostream>  
  
int main() {  
    std::cout << "Hello, \\t World!" << std::endl; // 输出 "Hello, \t World!",\t表示制表符  
    std::cout << "This is a test of \"double quotes\" and 'single quotes'." << std::endl;  
    return 0;  
}

以上就是关于C++中printf、scanf、cin、cout的用法,取消同步流以及转义字符的详细介绍。这些工具在C++编程中非常常用,掌握它们对于编写高效且易于维护的程序至关重要。

举报

相关推荐

0 条评论