c++中文件读取
对于C++编译运行文件,我使用过两个编译器,一个是visual studio 2013,另外一个是devcpp,推荐使用devcpp。
vs的特点是界面整洁清晰,但是需要收费,这是微软的,并且在电脑上的运行速度是非常慢的; 而devcpp的特点是界面比较简陋,但是该软件免费下载,运行速度快,软件响应快。
例0.0:
这里介绍cin和cout对象的方法: cin.get()以及cout.put(),前者是将用户的输入获取,返回获取到的一个字符; 后者接受一个参数,返回值就是在控制台输出这个字符。如下所示:
#include <iostream>
using namespace std;
int main()
{
char c;
cout << "Input the words: " << endl;
while ((c= cin.get()) != EOF)
{
cout.put(c);
}
cout << "That's the end!" << endl;
return ;
}
这里就是将用户输入的依次获取,并且输出,知道判断为EOF,则停止程序。结果如下:
例0.1
这里在介绍getline函数和read函数。
其中 getline函数的作用是从输入流中读取一行字符,其用法和上面将的get函数输入一行字符的功能类似,如cin.getline();
而read函数可以从输入流中读取指定书目的字符并将他们存放在指定的数组当中,格式如下:
cin.read(char *buf, int size);
而eof函数是end of file的缩写,表示文件结束。 如果读取数据到达末尾,eof函数值为真,表示遇到文件结束符;eof函数值为假,表示没有遇到文件结束符。
另外,peek函数的作用是从输入流中返回下一个字符,但他只是观测,指针仍然停留在当前位置,遇到流结束标志时返回EOF。 调用形式为: c= cin.peek();
而cin.putback函数作用是将前面用get或者getline函数从输入流中读取的字符ch返回到输入流,插入到当前指针位置,供后面读取。
例1:
如下所示,首先创建一个文件流对象,接着打开文件,进行输入,最后关闭。 读取文件内容与之相似。
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
cout << "this is the begining!" << endl;
int n;
double d;
ofstream outfile;
outfile.open("C:\\Users\\Administrator\\Desktop\\fileTest\\fileTest\\test.txt", ios::out);
//outfile.open("./test.txt", ios::out);
outfile << << endl;
outfile << 3.8 << endl;
outfile.close();
cout << "successful!" << endl;
ifstream infile("C:\\Users\\Administrator\\Desktop\\fileTest\\fileTest\\test.txt", ios::in);
//ifstream infile("./test.txt", ios::in);
infile >> n >> d;
cout << n << "," << d << endl;
infile.close();
return ;
}
这里绝对路径使用“\\”是转义后的结果,相对路径暂未成功。
程序执行完毕,可发现内容为50 3.8,成功输入。
例2
#include <iostream>
#include <fstream> using namespace std;
int main()
{
cout << "this is the beginning!" << endl;
fstream outfile;
outfile.open("C:\\Users\\Administrator\\Desktop\\fileTest\\fileTest\\test1.txt", ios::out);
if (!outfile)
{
cout << "open failed!" << endl;
exit();
}
outfile << "Hello world! \n";
outfile << "github ours github! \n";
outfile.close();
return ;
}
如果打开文件失败,outfile返回0,则 exit(1)退出程序。
另外,注意 ios::out 这个实参必填。最后要 close 即可。
且如果没有该文件可打开,则会自动创建文件,并完成后续输入。
例3
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
fstream outfile;
outfile.open("C:\\Users\\Administrator\\Desktop\\fileTest\\fileTest\\test2.txt", ios::out);
if (!outfile)
{
cerr << "open out failed !" << endl;
exit();
}
outfile << "Hello world! \n";
outfile << "github! \n";
outfile.close(); char s[];
fstream infile;
infile.open("C:\\Users\\Administrator\\Desktop\\fileTest\\fileTest\\test2.txt", ios::in);
if (!infile)
{
cerr << "open failed!" << endl;
exit();
}
while (!infile.eof())
{
infile.getline(s, sizeof(s));
cout << s << endl;
}
infile.close();
return ;
}
如上所示:我们先通过outfile输入内容,然后使用infile读取磁盘内容,infile.eof() 中eof即end of file,即如果不是file的最后一行,就继续读取文件,并且输出。且每次在操作时,无论读取,都需要进行打开文件已经关闭文件的操作。
c++中文件读取的更多相关文章
- Perl中文件读取操作
Perl中文件读取操作 http://blog.csdn.net/yangxuan12580/article/details/51506216
- 详解Js中文件读取机制
前言,文件读取是提高应用体验度的必须接口,应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file"&g ...
- Java开发中文件读取方式总结
JAVA开发中,免不了要读文件操作,读取文件,首先就需要获取文件的路径. 路径分为绝对路径和相对路径. 在文件系统中,绝对路径都是以盘符开始的,例如C:\abc\1.txt. 什么是相对路径呢?相对路 ...
- 用python对txt中文件读取,然后按顺序标号存入excel中
读取txt文件,然后存入excel中 import xlwt #从txt文件中读取内容,放到ftext1中 f1=open('/Users/XXX/Documents/pythonwork/tenso ...
- OC中文件读取类(NSFileHandle)介绍和常用使用方法
NSFileHandle 1.NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等) //判断是否有 tagetPath 文件路径,没有就创建 NSFileManager *fi ...
- [转]关于Unity中文件读取 - 大世界
原文 http://www.cnblogs.com/ThreeThousandBigWorld/p/3199245.html 存储: 在程序发布后文件的存放有两种,第一种是打包到Uniyt的资源包 ...
- 关于Unity中文件读取
存储: 在程序发布后文件的存放有两种,第一种是打包到Uniyt的资源包中(*.unity3D),第二种就是把文件存放在一个特殊的目录如:StreamingAssets,这个目录的东西Unity不会打包 ...
- python文件夹中文件读取踩坑
Q: 进行数据集图片预处理时,初始命名如下图(Fig1左),发现读取文件时,读取的结构并非如所设想的那样顺序读取 Fig 1 A: pyhton读取文件的时候,按照文件名的ascii码中的顺序进行逐位 ...
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...
随机推荐
- JDK 1.5、1.6 & 中文版API,J2EE5API大全(借鉴)
个人分类: Java文档 Sun 公司提供的Java API Docs是学习和使用Java语言中最经常使用的参考资料之一.但是长期以来此文档只有英文版,对于中国地区的Java开发者 ...
- java 定时执行
Timer和TimerTask CountDownTimer (android)
- 记录:CSS选择器学习
常用选择器:标签选择器.类选择器.ID选择器 子选择器(Child selectors) 还有一个比较有用的选择器子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素. .con> ...
- MIT Molecular Biology 笔记4 DNA相关实验
视频 https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...
- Ng第十三课:聚类(Clustering)
13.1 无监督学习:简介 13.2 K-均值算法 13.3 优化目标 13.4 随机初始化 13.5 选择聚类数 13.1 无监督学习:简介 在这个视频中,将开始介绍聚类算法.这将是一个激 ...
- CentOS 6 安装Redmine
Redmine是一个灵活的项目管理web应用,采用Ruby on Rails框架开发.Redmine是典型的web 2.0网站,项目管理系统的后起之秀.Redmine支持多项目,灵活的角色权限管理,灵 ...
- Leetcod--20. Valid Parentheses(极简洁的括号匹配)
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- hdu 1576 A/B 【扩展欧几里德】
题目 A/9973=n 那么:n= A - A / 9973 * 9973 --① 设:A/B=x 则A=B*x,代入① 得 n=B*x-A/9973*9973 然后这个方程中的A/9973 ...
- php apache
php与Apache配置基础知识 1.在 AllowOverride 设置为 None 时,.htaccess 文件将被完全忽略.当此指令设置为All时,所有具有“.htaccess” 作用域的指令都 ...
- java基础知识-算术运算符和赋值运算符
1.算术运算符 算术运算符: +,-,*,/,% /:取的是两个数的商,当两个数是整数,不整除的情况,结果不包含小数部分 %:取的是两个数的余数. 字符串和+联合使用:此时的+称为连接符.++,--都 ...