C++中的基本IO类型详解
概述
C++中的IO库为我们提供了丰富的输入输出功能,可以分为两大类:面向对象流和面向底层的文件操作。在这两类IO操作中,我们可以通过标准库中提供的多种数据类型和参数控制实现多功能和高效的输入输出。
面向对象流
cout与cin
cout和cin是C++中最基本的标准输入输出流,分别用来输出数据和读取数据。
具体使用方式如下:
#include <iostream>
using namespace std;
int main()
{
int num;
cout << "请输入一个数:";
cin >> num;
cout << "你输入的数是:" << num;
return 0;
}
上述代码中,cin为标准输入流,可以从控制台等输入设备读取用户的输入,而cout为标准输出流,将数据输出到控制台等输出设备。在使用cin输入时,要保证输入的类型和变量类型一致,否则可能会导致程序错误。
文件输入输出流
在C++中,可以通过文件输入输出流来实现对文件的读写操作。其中,ofstream用于写文件,ifstream用于读文件,而fstream则是读写模式。
具体方式如下:
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
// 写文件
ofstream fout;
fout.open("example.txt");
fout << "This is an example." << endl << "This is the second line.";
fout.close();
// 读文件
ifstream fin;
fin.open("example.txt");
string str;
while(getline(fin, str))
{
cout << str << endl;
}
fin.close();
return 0;
}
上述代码中,ofstream和ifstream用来创建输出和输入的文件流对象,并将结果写入或读取数据。在写文件时,我们需要使用open函数打开文件并指定文件名和写入模式。在读文件时,我们需要保证文件已经存在。
面向底层的文件操作
概述
在C++中进行文件操作,我们还可以使用一些底层IO库,例如fopen、fclose、fread、fwrite等。这些底层库可以实现对更底层的文件操作,提供更加灵活和高效的IO服务。
fopen
fopen函数用于创建或打开文件,并返回一个对文件的指针。可以通过该指针实现对文件的读写操作。
具体的方式如下:
#include <iostream>
#include <cstdio> // 注意要包含该头文件
using namespace std;
int main()
{
FILE *fp;
fp = fopen("example.txt", "w+");
fprintf(fp, "This is an example.\n");
fputs("This is the second line.", fp);
fclose(fp);
return 0;
}
上述代码中,FILE指针fp用于指向被创建或打开的文件。当指定打开方式时,"w"代表写,"r"代表读,"a"代表追加,"+"代表可读可写。我们需要使用fclose函数关闭文件。
fread和fwrite
fread和fwrite是底层IO库中用于对文件读写数据的函数。其中,fwrite用于写入数据,fread用于读取数据。
具体方式如下:
#include <iostream>
#include <cstdio> // 注意要包含该头文件
using namespace std;
struct Example {
int age;
char name[20];
};
int main()
{
FILE *fp;
Example ex = {25, "Alice"};
/* write to file */
fp = fopen("example.txt", "w+");
fwrite(&ex, sizeof(struct Example), 1, fp);
fclose(fp);
/* read from file */
fp = fopen("example.txt", "r");
fread(&ex, sizeof(struct Example), 1, fp);
fclose(fp);
cout << "name: " << ex.name << endl;
cout << "age: " << ex.age << endl;
return 0;
}
上述代码中,我们使用结构体Example来存储数据。在写文件时,我们使用fwrite函数将Example结构体写入文件;在读文件时,我们则使用fread函数从文件中读取Example结构体,并输出其内容。
总结
通过对C++中总体的IO库的掌握,我们可以更加灵活地控制输入输出,实现丰富多彩的程序开发。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中的基本IO类型详解 - Python技术站