阅读量:2
在Linux下,C++可以使用多种方法进行文件操作。以下是一些常用的方法:
- C++ I/O库:C++提供了iostream库,可以用于基本的文件输入输出操作。例如:
#include
#include
int main() {
std::ifstream infile("input.txt");
std::ofstream outfile("output.txt");
int num;
while (infile >> num) {
outfile << num * 2 << std::endl;
}
infile.close();
outfile.close();
return 0;
}
- C I/O库:C++也支持C语言的I/O库,如stdio.h。例如:
#include
int main() {
FILE *infile = fopen("input.txt", "r");
FILE *outfile = fopen("output.txt", "w");
int num;
while (fscanf(infile, "%d", &num) != EOF) {
fprintf(outfile, "%d\n", num * 2);
}
fclose(infile);
fclose(outfile);
return 0;
}
- POSIX文件I/O:POSIX标准提供了一套跨平台的文件操作函数,如open(), read(), write(), close()等。例如:
#include
#include
#include
int main() {
int infile = open("input.txt", O_RDONLY);
int outfile = open("output.txt", O_WRONLY | O_CREAT, 0644);
char buffer[1024];
ssize_t bytes_read;
while ((bytes_read = read(infile, buffer, sizeof(buffer))) > 0) {
write(outfile, buffer, bytes_read);
}
close(infile);
close(outfile);
return 0;
}
- Boost.Asio:Boost库提供了一个跨平台的异步I/O库,可以用于高性能的文件操作。例如:
#include
#include
int main() {
boost::asio::io_context io_context;
boost::asio::posix::stream_descriptor infile(io_context, open("input.txt", O_RDONLY));
boost::asio::posix::stream_descriptor outfile(io_context, open("output.txt", O_WRONLY | O_CREAT, 0644));
char buffer[1024];
std::size_t bytes_transferred;
while (boost::asio::read(infile, boost::asio::buffer(buffer), boost::asio::transfer_all()) > 0) {
boost::asio::write(outfile, boost::asio::buffer(buffer, bytes_transferred));
}
return 0;
}
这些方法可以根据需要选择使用。对于简单的文件操作,C++ I/O库和C I/O库通常足够使用。如果需要更高的性能或者跨平台支持,可以考虑使用POSIX文件I/O或Boost.Asio。
以上就是关于“C++ Linux下文件操作有哪些方法”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm