您现在的位置是:首页 >学无止境 >C++系列五:输入/输出网站首页学无止境
C++系列五:输入/输出
1. 输入
输入是指从外部源获得数据的过程, C++中可通过键盘或文件等外部源来获取输入数据。
(1)cin
cin
是C++标准库中的一个输入流对象,用于从标准输入设备(通常是键盘)读取数据。cin
是一个用于读取不同类型数据的操作符。
e.g. 从用户输入读取整数:
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter an integer: ";
cin >> num;
cout << "You entered: " << num << endl;
return 0;
}
运行上述代码,输出:
Enter an integer: 10
You entered: 10
上述代码中可以看出,首先需要包含iostream
头文件,然后使用using namespace std;
声明std命名空间。之后定义了一个整型变量num,并提示用户输入一个整数。最后,使用cin>>num
语句将输入值存储在num变量中。需要注意,>>
是一个操作符,用于从输入流中提取数据。
(2)getline
getline
是用于读取一行文本的函数,可从文件或标准输入读取一行字符,并将该行保存到一个字符串变量中。
e.g. 读取一行文本
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cout << "Enter your name: ";
getline(cin, str);
cout << "Hello, " << str << endl;
return 0;
}
上述代码中,定义了一个字符串变量str,然后提示用户输入姓名。接下来,使用getline(cin, str)
函数读取用户输入的整行数据,并将其存储在str变量中。最后,输出欢迎消息,其中包括用户输入的名称。
(3)文件输入
除了从键盘获取输入外,C++还允许从文件中读取输入。要进行文件输入,需要打开一个文件,然后使用cin
重定向输入流。
e.g. 从文件中读取输入
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream infile("input.txt");
int num;
while (infile >> num) {
cout << num << endl;
}
infile.close();
return 0;
}
上述代码中,首先使用ifstream
打开名为“input.txt”的文件,然后使用while
循环读取文件中的每个整数并将其输出到屏幕上。最后,使用infile.close()
关闭输入文件。
2. 输出
输出是指将数据发送到外部源的过程,C++中可通过控制台输出或将数据写入文件来进行输出。以下是C++中最常见的输出函数:
(1)cout
cout
是C++标准库中的一个输出流对象,用于将数据打印到标准输出设备(通常是屏幕)。
e.g.
#include <iostream>
using namespace std;
int main() {
cout << "Hello, world!" << endl;
return 0;
}
上述代码中,使用cout
输出“Hello, world!”字符串,并使用endl
语句添加新行。
(2)文件输出
除了将数据输出到控制台外,C++还允许将数据写入文件。要进行文件输出,需打开一个文件并使用cout
重定向输出流。
e.g. 将数据写入文件
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream outfile("output.txt");
outfile << "Hello, world!" << endl;
outfile.close();
return 0;
}
上述代码中,首先使用ofstream
打开名为“output.txt”的输出文件,然后使用outfile << “Hello, world!”
语句将字符串写入文件。最后,使用outfile.close()
关闭输出文件。
3. 格式化输出
某些情况下需要以特定格式输出数据,例如浮点数保留小数点后两位。C++提供了一些格式化输出函数,可用于控制输出数据的格式。
(1)setw
setw()
函数用于设置输出字段宽度。
e.g. 在一个字段宽度为10的列中输出一个整数
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int num = 12345;
cout << setw(10) << num << endl;
return 0;
}
运行上述代码,输出:
12345
上述代码中,将num变量输出到屏幕时,使用了setw(10)
函数来指定输出字段的宽度。
(2)setprecision
setprecision()
函数用于设置浮点数的精度。
e.g. 将浮点数保留小数点后两位
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double num = 3.1415926535;
cout << setprecision(2) << num << endl;
return 0;
}
运行上述代码,输出:
3.14
上述代码中使用setprecision(2)
函数来指定浮点数的输出精度。
(3)fixed
和scientific
fixed
和scientific
是两个控制浮点数输出格式的函数。fixed
函数用于以固定小数位输出浮点数,而scientific
函数用于以科学计数法输出浮点数。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double num = 1234567890.123456;
cout << fixed << setprecision(2) << num << endl;
cout << scientific << setprecision(2) << num << endl;
return 0;
}
运行上述代码,输出
1234567890.12
1.23e+009
上述代码中,使用fixed
函数以固定格式输出浮点数,而使用scientific
函数则以科学计数法输出浮点数。
4. 总结
20年前学习C++语言的幼稚记录