c++代码:文件的读写实现_txt文本数据流

数据的输出保存

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

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

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

#include<fstream>

通过该库内含的构造函数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<iostream>
#include<fstream>
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<iostream>
#include<fstream>
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<iostream>
#include<fstream>
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;
}

最终得到以下结果 

 

猜你喜欢

转载自blog.csdn.net/qq_34904125/article/details/125466200