文档章节

文本模式向文件中存入质数

王勋广
 王勋广
发布于 2016/04/19 13:44
字数 729
阅读 15
收藏 0

1、  输出文件由ofstream对象表示,创建方式:

ofstream outFile(“filename”);//名字可改

默认是文本模式,当打开filename文件时,如果filename不存在,就会用这个名称和路径创建一个文件。

要求:

(1)       输入需要计算的质数个数,从小到大依次计算出相应的质数(例如,输入需要计算的质数个数为4,那么计算结果为{2,3,5,7});

(2)       将(1)中的计算结果以文本模式输出到文件中,计算结果通过<<运算符写入文件,使用setw(10)控制输出格式;

提示:

判断质数的方法:

u  对正整数n,如果用2 根号n 之间的所有整数去除,均无法整除,则n为质数。

u  质数大于等于2 不能被它本身和1以外的数整除。

#include <iostream>

#include <iomanip>

#include <cmath>

#include <fstream>

#include <sstream>

#include <string>

#include <vector>

using namespace std;


int main()

{

int i, j, count = 0;

unsigned int n;

cout << "请输入需要计算的质数个数:";

cin >> n;


ofstream outFile("E:\prime_num.dat");

//创建输出流对象和文件

vector<int>prime_num;

//定义一个int型vector对象来存质数

for (i = 2; count < n; i++)

//i为需要判断是否为质数的数

//利用count计算以求质数个数

{

j = 2;

while (j <= sqrt(i))

{

if (i%j == 0) break;

//如果i能整除j,则退出while循环

j++;

}

if (j > sqrt(i))

//如果j比根号i大,其实这时已经说明i为质数

{

prime_num.push_back(i);

//存入质数i

count++;

}

}

for (auto &i : prime_num)

//范围for语句将质数写入文件

{

outFile << setw(10) << i;

}

cout << "已将所需质数输入文件!" << endl;

outFile.close();

//关闭文件

return 0;

}

2、输入文件由ifstream对象表示,创建方式:

ifstream inFile(“filename”);

输入文件时,需要检查文件流状态。1)使用inFile.is_open()2)对文件流使用!操作符( !inFile)

要求:

(1)       读取题目1的输出文本文件;

(2)       检查输入文件流状态,若文件打开失败则抛出并捕获异常;

(3)       输出文件的总长度(以字节计);

(4)       将读取到的数据在屏幕输出,要求使用setw()控制输出格式;

#include <cmath>

#include <sstream>

#include <iostream>

#include <vector>

#include <string>

#include <fstream>

#include <iomanip>

using namespace std;


int main()

{

int temp;//临时变量用于文件与屏幕输出的桥梁

ifstream inFile;

inFile.open("E:\prime_num.dat", ios::in);

try

{

if (!inFile)

throw ios_base::failure("");

inFile.seekg(0, ios::end);

//基地址为文件结束处,偏移地址为0,于是指针定位在文件结束处

streampos here = inFile.tellg();

//here为定位指针,因为它在文件结束处,所以也就是文件的大小

cout << "文件长度:" << here << endl;

inFile.seekg(0, ios::beg);

//基地址为文件头,偏移量为0,于是定位在文件头

while(inFile >> temp)

//逐个读取文件中字符,当然,空白不会读取

{

cout << setw(10) << temp;

}

}

catch (exception &e)

//捕获异常

{

cout << "Error:" << e.what() << endl;

}

inFile.close();

return 0;

}





© 著作权归作者所有

王勋广
粉丝 2
博文 10
码字总数 4668
作品 0
衡阳
程序员
私信 提问
vi的复制粘贴命令

vi的复制粘贴命令 2015-08-09 13:29 1426人阅读 评论(1) 收藏 举报 分类: linux(4) vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:   命令模式:vi启动后...

片刻
2015/12/23
123
0
Mac之vim普通命令使用[转]

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx 开始记录宏,并将结果存入寄存器x q 退出记录模式 @x 播放记录在x寄存器中的宏命令 稍微解释一下,...

java牛
2016/06/24
0
0
Linux下vim命令详解

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx 开始记录宏,并将结果存入寄存器x q 退出记录模式 @x 播放记录在x寄存器中的宏命令 稍微解释一下,...

风格若干
2016/08/12
29
0
Sed 命令详解.

Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲...

孙哲
2016/08/11
146
0
Linux和Unix系统中的vi编译器使用入门

vi 使用入门 vi 是一个Unix/Linux提供的全屏幕编辑器, 可以编辑文本文件。 一、vi 模式简介 vi 可分为三种状态: 1.命令模式: 控制光标移动;字符删除,移动,复制;进入输入模式,或最后行模...

疯狂的小黑
2016/10/08
4
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
5
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
8
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部