栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++代码:文件的读写实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++代码:文件的读写实现

数据的输出保存

在c++中实现文件的读写

当设计到与文件相关的操作时

首先要代码的开头添加一个标准库

#include

通过该库内含的构造函数foutput进行输出文件 

std::ofstream foutput(" "); 

这里我们声明一个数组,将数组的内容输出到txt文本中。

 int numbers[] = { 1,3,4,5,12312,534,64 };

通过循环遍历的方式将每一个值输出到文件中,这里需要先获取数组的长度。通过sizeof进行计算。

int arr_size = sizeof(numbers) / sizeof(numbers[0]); 

循环每一项

for (int i = 0; i < arr_size; i++) {
        foutput << numbers[i] << "n";
    } 

结束后不要忘记关闭文件

 foutput.close();

 最后运行代码看下效果

#include
#include
int main() {
	int numbers[] = { 1,3,4,5,12312,534,64 };
	std::ofstream foutput("output.txt");
	int arr_size = sizeof(numbers) / sizeof(numbers[0]);
	for (int i = 0; i < arr_size; i++) {
		foutput << numbers[i] << "n";
	}
	foutput.close();
	return 0;
}

 可以看到最后将数组中的每个元素,按行排列付给foutput进行输出到本地保存为output.txt文件

数据的读入计算

在对数据完成了输出保存之后,我们如何实现数据的读入并计算和呢。

与前面一样,先通过ifstream对文件进行读取

std::ifstream finput("output.txt"); 

然后我们需要定义初始值计算和存储变量

int sum = 0, temp = 0; 

通过遍历,判断非空,计算累加数值

while (!finput.eof()) {
        finput >> temp;
        sum += temp;
    }

 打印结果

std::cout << "The total:" << sum << std::endl;

最后也是要关闭文件

finput.close(); 

完整代码如下:

#include
#include
int main() {
	int numbers[] = { 1,3,4,5,12312,534,64 };
	std::ofstream foutput("output.txt");
	int arr_size = sizeof(numbers) / sizeof(numbers[0]);
	for (int i = 0; i < arr_size; i++) {
		foutput << numbers[i] << "n";
	}
	foutput.close();

	std::ifstream finput("output.txt");
	int sum = 0, temp = 0;
	while (!finput.eof()) {
		finput >> temp;
		sum += temp;
	}
	std::cout << "The total:" << sum << std::endl;
	finput.close();
	return 0;
}

 结果图如下:

 会发现计算的结果多加了一次最后的数字

如果可以修改代码进行判断

#include
#include
int main() {
	int numbers[] = { 1,3,4,5,12312,534,64 };
	std::ofstream foutput("output.txt");
	int arr_size = sizeof(numbers) / sizeof(numbers[0]);
	for (int i = 0; i < arr_size; i++) {
		foutput << numbers[i] << "n";
	}
	foutput.close();

	std::ifstream finput("output.txt");
	int sum = 0, temp = 0;
	//while (!finput.eof()) {
	//	finput >> temp;
	//	sum += temp;
	//	temp = 0;
	//}
	while (true) {
		if (finput >> temp) {
			sum += temp;
		}
		else {
			break;
		}
	}
	std::cout << "The total:" << sum << std::endl;
	finput.close();
	return 0;
}

最终得到以下结果 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号