-
如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
2013-10-07 22:28:37本文代码都在Windows/VC++6.0下测试过,... 当linux上的代码读取Windows文件格式时, 读取结果的每行都会多一个\r, 想想为什么。 2. 当Windows上的代码读取linux格式文件时, 读取的结果会显示只有一行, 想想为什么。前些天,发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程:
人工智能入门与进阶(链接)
本文代码都在Windows/VC++6.0下测试过, 在linux/g++下也没有问题。
但是,请一定注意linux和Windows文件格式的区别,比如:
1. 当linux上的代码读取Windows文件格式时, 读取结果的每行都会多一个\r, 想想为什么。
2. 当Windows上的代码读取linux格式文件时, 读取的结果会显示只有一行, 想想为什么。
先用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); // 包含了换行符 printf("%s", szTest); } fclose(fp); printf("\n"); return 0; }
这样, 我们就是整行读取了。
感觉C的读取方法有点丑陋,还是看看C++吧(只要文件格式Windows/linux和编译平台Windows/linux对应一致, 就放心用吧):
#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),对其它类型的文件,不适合。
-
Matlab读取excel文件中的数据
2018-07-24 15:08:58MATLAB读取excel中的数据 读取sheet1中的数据 [num,txt,raw]=xlsread('C:\Users\Administrator\Desktop\test\a.xls') %num返回的是excel中的数据,txt输出的是文本内容,row输出的是未处理数据 %一般情况下,...一、 Matlab读取excel中的数据
1.1 读取sheet1中的数据
% num返回的是excel中的数据,txt输出的是文本内容,raw输出的是未处理数据 [num,txt,raw]=xlsread('C:\Users\Administrator\Desktop\test\a.xls') % 一般情况下,我们读取的是excel中的数据,所以可以直接用下面的命令,只输出数据矩阵便可 [num]=xlsread('C:\Users\Administrator\Desktop\test\a.xls')
1.2 读取指定sheet中的数据
如果想读取excel中的第二个sheet中的数据,可以输入下面命令
% 读取excel中第二个Sheet内容 [num]=xlsread('C:\Users\Administrator\Desktop\test\a.xls', 2)
1.3 读取指定单元格中的数据
%读取excel中,第二个sheet,A2-C5之间的内容 [num]=xlsread('C:\Users\Administrator\Desktop\test\a.xls', 2, 'A2:C5')
-
python读取、写入txt文本内容
2019-08-22 21:54:28读取txt文本 python常用的读取文件函数有三种read()、readline()、readlines() 以读取上述txt为例,看一下三者的区别 read() 一次性读全部内容 一次性读取文本中全部的内容,以字符串的形式返回结果 with open...读取txt文本
python常用的读取文件函数有三种read()、readline()、readlines()
以读取上述txt为例,看一下三者的区别read() 一次性读全部内容
一次性读取文本中全部的内容,以字符串的形式返回结果
with open("test.txt", "r") as f: # 打开文件 data = f.read() # 读取文件 print(data)
readline() 读取第一行内容
只读取文本第一行的内容,以字符串的形式返回结果
with open("test.txt", "r") as f: data = f.readline() print(data)
readlines() 列表
读取文本所有内容,并且以数列的格式返回结果,一般配合for in使用
with open("test.txt", "r") as f: data = f.readlines() print(data)
readlines会读到换行符,可用如下方法去除:
with open("test.txt", "r") as f: for line in f.readlines(): line = line.strip('\n') #去掉列表中每一个元素的换行符 print(line)
写入txt文本
with open("test.txt","w") as f: f.write("这是个测试!") # 自带文件关闭功能,不需要再写f.close()
读写模式
要了解文件读写模式,需要了解几种模式的区别,以及对应指针
r : 读取文件,若文件不存在则会报错
w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件
a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
rb,wb: 分别于r,w类似,但是用于读写二进制文件
r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ : 可读,可写,文件不存在先创建,会覆盖
a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾
-
Java读取txt文件和写入txt文件
2016-05-25 23:16:26原文: Java读取txt文件和写入txt文件写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂! package edu.thu.keyword.test; ...2018-10-19更新
网友推荐更加简洁的写法,修改之后的代码;
项目实用优化,增加java7中的try-with-resources写法package com.nickwong.code; import java.io.*; /** * Created by Nickwong on 31/07/2018. * 根据1-8楼的建议,优化了代码 */ public class ReadTxt { public static void main(String args[]) { readFile(); writeFile(); } /** * 读入TXT文件 */ public static void readFile() { String pathname = "input.txt"; // 绝对路径或相对路径都可以,写入文件时演示相对路径,读取以上路径的input.txt文件 //防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw; //不关闭文件会导致资源的泄露,读写文件都同理 //Java7的try-with-resources可以优雅关闭文件,异常时自动关闭文件;详细解读https://stackoverflow.com/a/12665271 try (FileReader reader = new FileReader(pathname); BufferedReader br = new BufferedReader(reader) // 建立一个对象,它把文件内容转成计算机能读懂的语言 ) { String line; //网友推荐更加简洁的写法 while ((line = br.readLine()) != null) { // 一次读入一行数据 System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } /** * 写入TXT文件 */ public static void writeFile() { try { File writeName = new File("output.txt"); // 相对路径,如果没有则要建立一个新的output.txt文件 writeName.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖 try (FileWriter writer = new FileWriter(writeName); BufferedWriter out = new BufferedWriter(writer) ) { out.write("我会写入文件啦1\r\n"); // \r\n即为换行 out.write("我会写入文件啦2\r\n"); // \r\n即为换行 out.flush(); // 把缓存区内容压入文件 } } catch (IOException e) { e.printStackTrace(); } } }
##参考原文: Java读取txt文件和写入txt文件##
写Java程序时经常碰到要读如txt或写入txt文件的情况,但是由于要定义好多变量,经常记不住,每次都要查,特此整理一下,简单易用,方便好懂!
package edu.thu.keyword.test; import java.io.File; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileWriter; public class cin_txt { static void main(String args[]) { try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw /* 读入TXT文件 */ String pathname = "D:\\twitter\\13_9_6\\dataset\\en\\input.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径 File filename = new File(pathname); // 要读取以上路径的input。txt文件 InputStreamReader reader = new InputStreamReader( new FileInputStream(filename)); // 建立一个输入流对象reader BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言 String line = ""; line = br.readLine(); while (line != null) { line = br.readLine(); // 一次读入一行数据 } /* 写入Txt文件 */ File writename = new File(".\\result\\en\\output.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件 writename.createNewFile(); // 创建新文件 BufferedWriter out = new BufferedWriter(new FileWriter(writename)); out.write("我会写入文件啦\r\n"); // \r\n即为换行 out.flush(); // 把缓存区内容压入文件 out.close(); // 最后记得关闭文件 } catch (Exception e) { e.printStackTrace(); } } }
-
Python学习笔记(28)-Python读取word文本
2017-07-17 11:36:17一,简介Python可以利用python-docx模块处理word文档,...二,相关概念如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念。1,Document对象, -
C++读取图片
2018-11-20 00:12:36C++读取图片 以C++风格(文件流)而不是C风格(FILE)读取图片。 使用到的头文件主要是fstream 参考链接: http://www.cplusplus.com/reference/istream/istream/read/ 主要用到的函数: ifstream.seekg() ... -
java使用poi读取doc和docx文件
2016-07-22 10:53:02这几天在学习java io流的东西,有一个网友... 于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝试后,终于以正确的编码格式读取了这个doc文件。 -
Java中文本文件的读取(按行读取)
2018-04-29 18:14:44在之前的学习过程中,经常会遇到将文本文件中的数据读取到数组或其他数据结构中。每次遇到,总是在网上搜索代码解决,解决之后并没有总结复习,因此在下一次遇到同样的问题时,又重复之前的过程。这样周而复始,并... -
pandas 读取csv文件读取指定行 读取csv大文件分块读取方法
2018-03-10 20:57:05当用pandas的read_csv函数或者是read_table函数读取文件时,如果遇到大的文件,需要分块读取,在这个基础上可以 读取指定行,比如读取标签全为0的行。 代码如下: f = open(path + r'\train.csv') reader = ... -
C#OPC读取数据
2013-05-17 17:23:03C#访问OPC读取数据 一般用于自动化编程 -
读取data文件
2018-05-06 15:31:35在读取.data文件的时候,只能通过 with open(' ','r') as f: 进行读取,最后再保存为csv文件。该过程中通常是 1、先做a=strip().split('')处理,得到列表,但此时的a[i](i=1,2,...)是str属性, 如‘uid 130’,‘aid... -
opencv读取中文路径
2020-07-13 04:19:03解决opencv无法读取中文路径的问题并且增加参数使得读取图片类型与原方法相同 -
MATLAB读取文件夹下所有文件的文件名并读取数据
2018-12-08 22:23:56MATLAB读取文件夹下特定类型格式文件的文件名并读取该格式文件的数据 利用代码对大量数据进行自动批处理时,首先需要获取该数据存放的文件夹(文件夹路径),然后获取该文件夹下某一类型数据所有的文件名,最后通过... -
【Python-数据读取】读取txt文件每一行数据生成列表
2018-10-10 22:23:57好多时候我们要读取txt文件获得数据,并把数据的按行或者按列存放到列表中,从而生成特征和类别标签。今天读了好几个都没有成功,最后发现,数据间的分隔符十分重要,总结一下经验。 数据间的分隔符是空格 读取的... -
java利用反射实现文件的读取
2020-10-11 00:06:56java反射 java从很早的版本开始就引入了反射机制,java如今的框架底层大部分也都是使用反射实现的。...首先这边先把我的读取文件的方法展示出来 这个是用到的接口类 /** * 实现该接口中的方法,本来打算在Fil -
JavaScript进阶(六)用JavaScript读取和保存文件
2016-01-12 14:54:11用JavaScript读取和保存文件 因为Google还不提供同步插件数据的功能,所以导入和导出插件配置就必须和文件打交道了。而出于安全原因,只有IE才提供访问文件的API;但随着HTML5的到来,其他浏览器也纷纷支持了。 ... -
c++读取TXT文件内容
2019-07-03 14:09:07文件头: #include <iostream> #include <fstream> #include <cassert> ...1 逐行读取 void readTxt(string file) { ifstream infile; infile.open(file.data()); //将文件... -
Matlab读取txt文件中的数据(使用textread函数)
2018-04-18 22:13:45在使用Matlab处理数据时,我们经常需要读取txt文档,可以使用Matlab中强大的textread函数。它的基本语法是:[A,B,C,...] = textread(filename,format)[A,B,C,...] = textread(filename,format,N)其中filename就是... -
Java 读取TXT文件的多种方式-行读取,字节读取
2018-12-12 09:56:44Java 读取TXT文件的多种方式 1).按行读取TXT文件 package zc; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.... -
c语言读取WAV文件并读取
2017-09-02 14:10:56c语言如何将WAV音频文件读取并存入char数组中,读入的数据要能用而不是乱码!求大神! -
pandas 读取csv 按行读取
2019-07-18 11:05:12import pandas as pd csvfile = open('text.csv',encoding='utf-8') ...# 按行读取保存到字典里,假设每行有三个字段,item_id,info,title dict_item_id = {} dict_info = {} dict_title = {} di... -
Python使用pandas读取excel表格数据
2019-04-08 16:14:04导入 import pandas as pd ...读取表格并得到表格行列信息 df=pd.read_excel('test.xlsx') height,width = df.shape print(height,width,type(df)) 表格如下: 得到如下输出,为一个4行5列的数据块: ... -
java读取文本,如何读取前n行,在读取中间n行,在读取后n行?
2016-11-24 14:21:53例如 0 1 2 43 4 5 先读取1行和2行,判断最大,然后读取3行和4行判断最大,接着读取5行和6行行判断最大 -
Java读取文件的方法
2018-10-21 16:32:11读取二进制文件 读取二进制文件,并存入byte数组,如算法训练模型的二进制模型。 public byte[] readFromByteFile(String pathname) throws IOException{ File filename = new File(pathname); ... -
python 文件读取
2018-07-24 17:16:18读取整个文件 操作文件的第一步就是得打开要操作的文件,然后进行读取。在python中我们可以使用open函数来打开一个文件,然后使用read方法来读取文件。 示例: import os with open('data.txt', encoding='utf-... -
文件读取(FileInputStream 读取本地文件)
2019-07-05 16:01:56使用FileInputStream 读取本地文件(图片、视频、音乐、文档资料) 二进制文件、文本文件 ...当程序读取二进制文件,以字节方式读取,对读取数据的解释由读取数据而定 ,如读取图片时,需要了解文件的结... -
C语言读取每一行文本
2018-07-20 15:55:15C语言读取每一行文本方法:C语言读取每一行文本 -
Java读取文件
2019-06-04 16:30:13Java读取文件 本文是基于Windows 10系统环境,学习和实现Java读取文件: Windows 10 MyEclipse 10 一、Java读取文件 (1) 代码实现 java代码 public class Demo(){ File file = new File("e:/a.txt"); //读取... -
Spring Boot读取properties配置文件中的数据
2018-08-23 00:09:07Java EE 目录:https://blog.csdn.net/dkbnull/article/details/87932809 Spring Boot 专栏:https://blog.csdn.net/dkbnull/category_9278145.html Spring Cloud 专栏:... -
Python读取文件内容
2018-12-18 16:27:54Python 读取文件内容
-
【数据分析-随到随学】Spark理论及实战
-
【数据分析-随到随学】数据可视化
-
Tarjan求割点、割点
-
Java se 第一部分 语法基础篇 第6章 数组
-
量化高频交易系统tick数据采集
-
Java集合中的subList()、retainAll()方法
-
app测试用例.xmind
-
产品设计与研发:价值驱动的敏捷需求管理实践 PDF分享版
-
递归求余数
-
idea出现Could not autowire. No beans of ‘CityMapper‘ type found.
-
红米note4X维修原理图PCB位置图(PDF格式)
-
【2021】UI自动化测试Selenium3
-
使用jQuery快速高效制作网页交互特效、第四章
-
嵌入式Linux开发调优之一:系统与内核
-
小米5S维修原理图PCB位置图(PDF格式)
-
红米6维修原理图PCB位置图(PDF格式)
-
数据类型转换、运算符、方法入门
-
darknet_ros.zip
-
SpringBoot的sharding-jdbc配置说明
-
【案例】loading遮罩demo 作者:Sakura.zip