C++学习基础笔记-输入&输出+科学记数法
C++基础-输入&输出+科学记数法
心血来潮,打算从今天开始写笔记
一.常见的头文件
- 1.iostream
- 2.iomanip
- 3.cstdio
1. <iostream>
头文件
作用:
<iostream>
头文件包含了与输入输出(I/O)相关的功能,它定义了标准输入流(cin
)、标准输出流(cout
)、标准错误流(cerr
)等对象。通过这些对象,可以与控制台进行数据的输入输出。
常见功能:
cin
:用于从标准输入(通常是键盘)获取数据。cout
:用于向标准输出(通常是屏幕)打印数据。cerr
:用于输出错误信息,通常输出到屏幕。clog
:用于输出日志信息,通常输出到屏幕。
示例代码:
1 |
|
输出:
1 |
|
在这个例子中:
cin >> num;
从键盘获取输入。cout << "You entered: " << num << endl;
将用户输入的数据输出到控制台。
2. <iomanip>
头文件
作用:
<iomanip>
头文件定义了多种用于格式化输入输出的操控符,主要是为控制输出格式提供了更强的功能。常见的操控符有 setprecision
、setw
、fixed
、left
、right
等。它通常与 <iostream>
一起使用,用于定制化输出格式,比如设置小数点后的位数、输出对齐方式等。
常见功能:
setprecision(n)
:设置浮点数的输出精度(即小数位数或总位数)。fixed
:控制浮点数输出为定点格式,避免使用科学计数法。scientific
:控制浮点数输出为科学计数法格式。setw(n)
:设置输出字段的宽度,适用于数字、字符串等输出。left
、right
、internal
:控制输出对齐方式,分别为左对齐、右对齐和内对齐。setfill(c)
:设置输出宽度不足时填充的字符。showpoint
:强制显示浮点数的小数点。
示例代码:
1 |
|
输出:
1 |
|
在这个例子中:
fixed << setprecision(2)
强制将pi
输出为定点格式,并保留两位小数。setw(10)
设置输出字段的宽度为 10,setfill('0')
设置填充字符为'0'
,所以数字 42 会右对齐,前面填充零。scientific << setprecision(4)
将浮点数以科学计数法格式输出,并保留 4 位小数。
总结:
<iostream>
头文件:包含了与标准输入输出相关的功能,提供了cin
、cout
、cerr
等常用对象。<iomanip>
头文件:提供了用于格式化输入输出的操控符,能够控制浮点数的精度、输出的宽度、对齐方式等格式化选项。
这两个头文件通常是 C++ 输入输出操作的基础,<iostream>
主要负责数据流的输入输出,而 <iomanip>
使得输出结果可以更加精确和易于阅读。
3. <cstdio>
头文件
在 C++ 中,<cstdio>
头文件是 C 标准库的一部分,提供了用于输入输出操作的函数,尤其是格式化输入输出的函数。它是 C++ 中支持 C 风格的输入输出功能的标准头文件,允许你使用 printf
、scanf
等函数来进行数据的输出和输入。
1. <cstdio>
头文件的作用
<cstdio>
头文件的主要作用是提供与文件和标准输入输出设备(如终端、控制台)交互的函数。它定义了用于格式化输入输出的函数,文件操作函数等。
2. 常见的函数
<cstdio>
中包含的最常用的函数包括:
1) printf
— 格式化输出
printf
是一个格式化输出函数,允许将数据打印到标准输出(通常是控制台)。它可以输出文本、整数、浮点数、字符等类型的数据。
1 |
|
2) scanf
— 格式化输入
scanf
是一个格式化输入函数,允许从标准输入(通常是键盘)读取数据,并根据指定的格式存储到变量中。
1 |
|
3) fprintf
— 格式化输出到文件
fprintf
类似于 printf
,但是它将输出写入指定的文件,而不是标准输出。
1 |
|
4) fscanf
— 格式化从文件输入
fscanf
类似于 scanf
,但是它从指定的文件中读取数据。
1 |
|
5) fputs
和 fgets
— 文件读写
fputs
用于将字符串写入文件。fgets
用于从文件中读取一行字符串。
1 |
|
6) getchar
和 putchar
— 字符输入输出
getchar
用于从标准输入读取一个字符。putchar
用于将一个字符输出到标准输出。
1 |
|
7) fgetc
和 fputc
— 文件字符读写
fgetc
用于从文件中读取一个字符。fputc
用于将一个字符写入文件。
1 |
|
3. 文件操作
<cstdio>
头文件还包含了用于处理文件的函数:
fopen
:打开文件fclose
:关闭文件feof
:判断文件指针是否到达文件末尾ferror
:检查文件操作是否出错fseek
、ftell
:文件指针的定位操作rewind
:将文件指针重置到文件的开头
1 |
|
4. 错误处理
<cstdio>
中有一些用于错误处理的函数,例如:
perror
:输出最后一个错误的描述信息clearerr
:清除文件流的错误标志
1 |
|
5. <cstdio>
与 C++ 的 <iostream>
虽然 C++ 提供了更现代的输入输出方式,例如 std::cout
和 std::cin
来代替 C 语言的 printf
和 scanf
,但是有时候使用 <cstdio>
中的函数会更直接,尤其在需要进行格式化输出、控制输出精度、或进行文件操作时,C 风格的函数提供了更细粒度的控制。
C++ 中推荐使用 <iostream>
和 流式输出输入,因为它们提供了类型安全、更好的可维护性和更简洁的语法。例如:
1 |
|
6. 小结
<cstdio>
是 C 和 C++ 中提供的标准输入输出库,包含了大量用于格式化输出、从键盘读取输入、与文件交互等功能的函数。虽然在 C++ 中,我们更常用 iostream
库来进行输入输出操作,但 <cstdio>
仍然非常有用,尤其在涉及到低级的、精确的输入输出需求时。
二.printf参数
在 C++ 中,printf
是一个用于格式化输出的标准库函数,通常用于打印文本和数值信息。它来自于 C 语言,并且仍然在 C++ 中广泛使用,特别是当你需要控制输出格式(如数字的精度、对齐、填充字符等)时,printf
会比 C++ 的流式输出(如 cout
)提供更多的灵活性。
printf
的作用:
- 用于将文本和变量打印到控制台。
- 提供了丰富的格式控制功能,允许你指定输出的格式,例如指定小数点后几位、数值的对齐、使用固定宽度等。
printf
的语法:
printf
函数的基本语法如下:
1 |
|
format
是一个格式化字符串,包含普通字符和格式说明符。格式说明符是以%
开头,后面跟随具体的格式标识符,用于指示如何输出对应的变量。- 后续的
...
是可变参数,表示在格式字符串中占位符对应的变量。
常见的格式说明符:
%d
:输出整数(十进制)。%f
:输出浮点数(默认小数点后6位)。%.2f
:输出浮点数,保留两位小数。%s
:输出字符串。%c
:输出字符。%x
:输出整数的十六进制表示。%o
:输出整数的八进制表示。
示例代码:
1 |
|
输出:
1 |
|
格式控制:
printf
支持许多格式控制选项,如指定输出的宽度、对齐、填充字符、精度等。
示例:指定宽度、对齐和填充
1 |
|
输出:
1 |
|
关于 print
:
在 C++ 标准库中没有 print
函数。虽然很多现代编程语言(如 Python、JavaScript)使用 print
来输出信息,但 C++ 中没有内置的 print
函数。你可以使用 printf
或 cout
来实现输出功能。
1. 使用 printf
:
如前所述,printf
是 C 和 C++ 中常用的格式化输出函数,适用于需要精确控制输出格式的场景。
2. 使用 cout
:
C++ 更倾向于使用 cout
来进行输出,这个函数来自 C++ 标准库 <iostream>
头文件。它更加面向对象,且支持流式操作,适合大多数简单的输出需求。
1 |
|
输出:
1 |
|
总结:
printf
是一个 C 语言中的标准输出函数,也可以在 C++ 中使用,提供了格式化输出的强大功能。它通过格式化字符串来控制输出的精度、对齐、宽度等,适用于需要精确控制输出格式的场景。- C++ 标准库中没有直接的
print
函数,通常使用printf
或cout
来输出信息。如果你不需要复杂的格式控制,cout
是 C++ 中的推荐方式。
三.补充PS:
科学记数法(Scientific Notation)通常用于表示非常大或非常小的数字,目的是将数字表示得更加简洁和易于处理。你提到的 e
符号其实就是科学记数法的一种表示方式,表示“乘以 10 的幂”。这种表示方法在计算机科学和数学中非常普遍。现在,我们来详细解释一下为什么会用 e
而不是传统的“数字的几次方”。
科学记数法的基本形式:
科学记数法的基本形式是:
$$ a \times 10^b $$
其中:
- ( a ) 是一个有效数字(通常是一个在 1 到 10 之间的数字)。
- ( b ) 是一个整数,表示 10 的幂次。
例如:
- ( 3.14 \times 10^2 = 314 )
- ( 1.23 \times 10^{-4} = 0.000123 )
这种表示法有效地将大数和小数缩写成简洁的形式,方便显示和计算。
为什么使用 e
符号?
在计算机系统中,尤其是在 C++ 中,科学记数法常常使用 e
来表示“乘以 10 的幂”,这种方式来源于数学中的“指数记法”。e
代表的是“乘以 10 的某个幂次”。所以,数字的科学记数法可以写成:
$$ a \times 10^b $$
在计算机中,通常使用 e
来表示这个关系。例如:
1.23e2
等价于 ( 1.23 \times 10^2 )(即 123)4.56e-3
等价于 ( 4.56 \times 10^{-3} )(即 0.00456)
e
是如何产生的?
e
来自于数学中指数表示法,它是 exponent(指数)的简写。我们可以把它看作是表达 “10 的幂” 的一个标记。例如:
- ( 3.14 \times 10^2 ) 在计算机表示中会写作
3.14e2
- ( 1.23 \times 10^{-4} ) 会写作
1.23e-4
这使得科学记数法更简洁,不需要显示完整的 × 10^
部分。
举例:
1.23e2
:
这表示 ( 1.23 \times 10^2 = 123 )。1.23e-2
:
这表示 ( 1.23 \times 10^{-2} = 0.0123 )。4.56e5
:
这表示 ( 4.56 \times 10^5 = 456000 )。9.8e-3
:
这表示 ( 9.8 \times 10^{-3} = 0.0098 )。
为什么不直接使用 “数字的几次方”?
传统的数学表示中,我们可以写作 ( 1.23 \times 10^2 ),但在计算机中,尤其是在编程语言中,e
符号为简洁的表达方式。使用 e
而不是完全展开的形式,能够方便地处理非常大的数字或非常小的数字。由于计算机中的浮点数通常采用二进制表示,使用 e
来表示科学记数法符合计算机内部的存储与计算方式,使得它既简洁又能有效地表达指数。
小结:
e
是科学记数法中的标准符号,代表“乘以 10 的某个幂”。- 它是 exponent(指数)的缩写,在数学和计算机中广泛使用。
e
使得浮点数表示更加简洁,特别是在计算机程序中,避免了显示冗长的“乘以 10 的幂”部分。
注:以上内容仅供学习交流使用,禁止用于非法目的。请自觉遵守法律规定。本网站所有内容仅限于学习交流和娱乐,任何非法用途均由使用者个人承担责任。