如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
原文地址: http://blog.csdn.net/stpeace/article/details/12404925
如下代码均在Windows/VC++6.0下测试通过, 请一定注意linux和Windows文件格式的区别
先用C语言写一个丑陋的程序:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- FILE *fp;
- if(NULL == (fp = fopen("1.txt", "r")))
- {
- printf("error\n");
- exit(1);
- }
- char ch;
- while(EOF != (ch=fgetc(fp)))
- {
- printf("%c", ch);
- }
- fclose(fp);
- return 0;
- }
你只能看到结果,却没法利用每一行。 我们来改为:
- // VC++6.0
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char szTest[1000] = {0};
- int len = 0;
- FILE *fp = fopen("1.txt", "r");
- if(NULL == fp)
- {
- printf("failed to open dos.txt\n");
- return 1;
- }
- while(!feof(fp))
- {
- memset(szTest, 0, sizeof(szTest));
- fgets(szTest, sizeof(szTest) - 1, fp); // 包含了\n
- printf("%s", szTest);
- }
- fclose(fp);
- printf("\n");
- return 0;
- }
这样, 我们就是整行读取了。
感觉C的读取方法有点丑陋,还是看看C++吧:
- #include <fstream>
- #include <string>
- #include <iostream>
- using namespace std;
- int main()
- {
- ifstream in("1.txt");
- string filename;
- string line;
- if(in) // 有该文件
- {
- while (getline (in, line)) // line中不包括每行的换行符
- {
- cout << line << endl;
- }
- }
- else // 没有该文件
- {
- cout <<"no such file" << endl;
- }
- return 0;
- }
当然,你可以对上述程序进行修改,让1.txt中的每一行输入到2.txt中,如下:
- #include <fstream>
- #include <string>
- #include <iostream>
- using namespace std;
- int main()
- {
- ifstream in("1.txt");
- ofstream out("2.txt");
- string filename;
- string line;
- if(in) // 有该文件
- {
- while (getline (in, line)) // line中不包括每行的换行符
- {
- cout << line << endl;
- out << line << endl; // 输入到2.txt中
- }
- }
- else // 没有该文件
- {
- cout <<"no such file" << endl;
- }
- return 0;
- }
结果, 2.txt和1.txt中的内容完全一致,你可以用Beyond Compare比较一下,我比较过了。
看来上述程序还能实现文件的复制呢,如下:
- #include <fstream>
- #include <string>
- #include <iostream>
- using namespace std;
- void fileCopy(char *file1, char *file2)
- {
- // 最好对file1和file2进行判断
- ifstream in(file1);
- ofstream out(file2);
- string filename;
- string line;
- while (getline (in, line))
- {
- out << line << endl;
- }
- }
- int main()
- {
- fileCopy("1.txt", "2.txt");
- return 0;
- }
当然了,上述程序只能针对文本文件(不仅仅是.txt),对其它类型的文件,不适合。
如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)相关推荐
- 逐行读取txt文件中_Spring系列八:Spring 中读取文件-ResourceLoaderAware
重叠泪痕缄锦字,人生只有情难死. 概述 本文将了解资源或文件(例如文本文件.XML文件.属性文件或图像文件)加载到Spring应用程序上下文中的不同实现.Spring ResourceLoader为我 ...
- python读取字符串指定位置字符_python读取txt文件中特定位置字符的方法
python读取txt文件中特定位置字符的方法 如下所示: # -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding(' ...
- 学python看什么书好1002无标题-如何使用pandas读取txt文件中指定的列(有无标题)
最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...
- python导入txt文件并绘图-Python实现读取txt文件中的数据并绘制出图形操作示例
本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.51 ...
- python按列读取txt文件_如何使用pandas读取txt文件中指定的列(有无标题)
最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...
- python读取指定路径txt文件-如何使用pandas读取txt文件中指定的列(有无标题)
最近在倒腾一个txt文件,因为文件太大,所以给切割成了好几个小的文件,只有第一个文件有标题,从第二个开始就没有标题了. 我的需求是取出指定的列的数据,踩了些坑给研究出来了. import pandas ...
- 用python读取txt文件中的数据并画各类图形展示_Python实现读取txt文件中的数据并绘制出图形操作示例...
本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.51 ...
- 【C++】读取txt文件中指定行的内容
使用c++读取TXT文件中指定行的内容 classification_classes_ILSVRC2012.txt:下载链接 验证: #include <iostream> #includ ...
- R语言读取txt文件中的内容
在RGui中读取.txt文件中的内容,采用函数read.table("xxx.txt",head=TRUE|FALSE); 其中head=TRUE表示含有属性的标题,hea ...
最新文章
- Android 自定义View ——Matrix (矩阵)
- how to check unsolved conflicts file list in git merge?
- 怎么一步步编写简单的PHP的Framework(二十一)
- java常见的排序算法_常见排序算法及Java实现
- C#仿QQ皮肤系列之-引言
- 数据库工作笔记018---Windows下mysql安装_服务无法启动没有报告解决
- 人工智能与深度学习概念(5)——目标检测-RCNN
- 03day输入及转义符的使用
- 教师教育网各网页链接
- C# 开发Chrome内核浏览器(WebKit.net)
- 魔兽国服修改服务器地址,魔兽国服退役服务器上架暴雪官方商店
- php获取m3u8的地址,如何获取各大平台的播放地址(获得优酷的m3u8播放地址)为例...
- sublime html代码自动排版,sublime Text3 如何自动排版代码
- Pr导入录屏视频产生音画不同步问题的解决方法
- 单片微型计算机频率测量实验,毕业论文:频率计系统设计
- 《Oracle Concept》第二章 - 19
- 华为服务器开虚拟化,华为服务器虚拟化的随笔
- python保存图片到指定路径_python 抓取页面数据,并保存图片文本到指定目录文件夹...
- 【机器学习笔记】【决策树】【泰坦尼克号幸存者的预测】
- HTML5 入门( 一)
热门文章
- ajax mysql项目 react_React视频教程来啦,每周末都有前端视频教程学
- mysql collation utf8_mysql数据库 表字段 的collation utf8_unicode_ci
- java gzip xml_Java GZIPInputStream与GZIPOutputStream的使用示例
- MyBatis 源码分析 - 映射文件解析过程
- Java synchronized 中的 while 和 notifyAll
- WinEdt显示行号
- 从0开始学习 GitHub 系列之「初识 GitHub」
- 160家优秀国外技术公司博客
- 【caffe】OpenCV Load caffe model
- python+selenium中webdriver相关资源