1. 程式人生 > >C/C++從文字檔案讀取資料

C/C++從文字檔案讀取資料

    本文主要是利用C函式fread、fwrite、fscanf以及C++檔案流ifstream、ofstream等函式從檔案讀寫。

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <String>
using namespace std;
struct student
{
	int num;
	int age;
	char name[30];
	//使用char *name;讀取結構體出錯
};
//寫入結構體陣列
void writeStruct()
{
    student* listStruct;
	const int Size = 5;
	listStruct = (struct student*)malloc(sizeof(struct student) * Size);
	FILE *fp;
	for (int i = 0; i < Size; i++){
		listStruct[i].num = i;
		listStruct[i].age = i * 10;
		strcpy(listStruct[i].name, "name");
	}
	fp = fopen("test.txt", "wb");
	if (fp == NULL){
		printf("Open File failed.\n");
		exit(0);
	}
	for (int i = 0; i < Size; i++){
		if (fwrite(&listStruct[i], sizeof(struct student), 1, fp) != 1){
			printf("File Write Error.\n");
		}
	}
	printf("write data success.\n");
	fclose(fp);
}

//讀取到結構體
void readStruct(){
	FILE * fp;
	if ((fp = fopen("test.txt", "rb")) == NULL){
		printf("Open File failed.\n");
		exit(0);
	}
	student one;
	printf("read data:\n");
	while (fread(&one, sizeof(struct student), 1, fp) == 1){
		printf("%d %d %s\n", one.num, one.age, one.name);
	}
	fclose(fp);
}


//按照指定格式從文字中讀取多行資料
void readFile(){
	FILE *fp;
	fp = fopen("read.txt", "r");
	if (fp == NULL){
		printf("Open File failed.\n");
		exit(0);
	}
	int a;
	float c;
	char str[100];
	while (!feof(fp)){
		fscanf(fp, "%d%s%f", &a, &str, &c);
		printf("Line:%d %s %.1f\n", a, str, c);
	}
	fclose(fp);
}

//C++ 檔案流讀寫
void writeStream(){
	ofstream out;
	out.open("11.txt", ios::trunc);
	if (!out.is_open()){
		cout << "open File Failed." << endl;
		return;
	}
	char a = 'a';
	for (int i = 0; i < 5; i++){
		out << i << "\t" << a << endl;
		a++;
	}
	out.close();
}

void readStream(){
	ifstream in;
	in.open("11.txt", ios::in);
	if (!in.is_open()){
		cout << "open File Failed." << endl;
		return;
	}
	string strOne;
	while (getline(in, strOne)){
		stringstream ss;
		ss << strOne;
		int a;
		char c;
		ss >> a >> c;
		cout << a <<"  "<< c << endl;
	}

}


int main(){
	writeStruct();
	readStruct();
	//readFile();
	//writeStream();
	//readStream();
	return 0;
}

1、測試讀寫結構體陣列


2、按照指定格式從文字讀取資料


3、C++檔案流讀寫


相關推薦

C/C++文字檔案讀取資料

    本文主要是利用C函式fread、fwrite、fscanf以及C++檔案流ifstream、ofstream等函式從檔案讀寫。 #include <stdio.h> #include <stdlib.h> #include <iostr

c語言一個檔案讀取文字到另一個檔案

#include "stdio.h" #include "string.h" int main() { FILE *fileR, *fileW; char buf[1000]; if((fileR = fopen("test.txt","r")) == NULL)

C語言txt檔案資料儲存到二維陣列

程式碼 #include <stdio.h> int main(int argc,char** argv) { float a[3][3]; int i

.resx檔案讀取資料

//.resx檔案讀取,檔案為內容 private string languageResx(string language, string key) { string filename; switch (la

PCD檔案讀取資料

首先寫c++檔案 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h>

Android Studio平臺下使用hellochart實現txt檔案讀取資料繪折線圖

Android Studio平臺下使用hellochart實現從文字讀取資料繪折線圖 本人是一個剛剛接觸Android不超過兩個月的小白,最近在做的論文是關於這一塊的相關內容。所有的東西都是自學的,聽導師的建議也是第一次留個這樣的資料,可能有很多地方理解不到位,

springboot~openfeignJSON檔案讀取資料

對於openfeign來說,幫助我們解決了服務端呼叫服務端的問題,你不需要關心服務端的URI,只需要知道它在eureka裡的服務名稱即可,同時你與服務端確定了服務方法的引數和返回值之後,我們可以在單元測試時mock這些服務端方法即可,真正做到了單元測試,而不需要與外界資源進行互動。 今天主要說一下在op

c++基礎】json檔案提取資料

前言 標註資料匯出檔案是json格式的,也就是python的dict格式,需要讀取標註結果,可以使用c++或者python,本文使用c++實現的。 JsonCpp簡介 JsonCpp是一種輕量級的資料交換格式,是個跨平臺的開源庫,可以從github和sourceforge上下載原始碼。 JsonCpp

C++學習--向txt檔案寫入資料讀取資料、獲取行數以及刪除檔案

基於VS2013平臺的程式碼如下: #include <iostream> #include <fstream> using namespace std; void main() { ofstream fout; int a = 15;

C# 資料庫中讀取資料(ExecuteReader)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using Syst

C++中文字檔案讀取優化-使用緩衝

    C++中可以採用stream讀取文字檔案,基本方式是一次一行,程式設計簡潔易行,比用C方便多了。但是,凡事有利有弊,當檔案行數較多時,檔案讀取IO次數就會隨之增加,檔案讀取的時間會急劇增長。因為檔案IO的時間要遠大於CPU在記憶體中處理資料的時間,假如IO時間是毫秒級

文字檔案讀取資料到集合中,並遍歷集合

import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; /*  * 需求:從文字檔案中讀取資料(每一行

C語言 重定向 txt檔案資料作為輸入代替鍵盤輸入

加上下面這句: int main(void) { freopen("d:\\test.txt", "r", stdin); start(); output(); return 0; } 其他

tensorflow--檔案讀取資料

讀取資料-csv tensorflow讀取資料流程 構造檔案佇列 讀取佇列內容 reader = tf.TextLineReader() 解析成一個樣本資料 example, label = tf.decode_csv(value, record_defaults

C++影象批處理:讀取資料夾中全部影象的方法

string file_path = "H:\\image data\\"; string search_path = file_path + "*.jpg"; vector<string> file_list; if (!get_

《機器學習實戰》第2章閱讀筆記3 使用K近鄰演算法改進約會網站的配對效果—分步驟詳細講解1——資料準備:文字檔案中解析資料(附詳細程式碼及註釋)

 本篇使用的資料存放在文字檔案datingTestSet2.txt中,每個樣本資料佔據一行,總共有1000行。 樣本主要包含以下3中特徵: (1)每年獲得飛行常客里程數 (2)玩視訊遊戲所耗時間百分比 (3)每週消費的冰淇淋公升數 在使用分類器之前,需要將處理的檔案格式

C/C++讀寫文字檔案、二進位制檔案

//採用CPP模式讀取txt void TextRead_CPPmode() { fstream f; f.open("txt_out.txt",ios::in); //檔案開啟方式選項: // ios::in    = 0x01, //供讀,檔案不存在則建立(ifstream預設的開啟方式) /

python直接按行讀取gz壓縮檔案中的文字檔案資料

之前寫了一個從日誌檔案中(txt檔案)提取特定的日誌,寫入mysql資料庫的指令碼,由於日誌太大,維護人員把日誌打包壓縮成了tar.gz格式。 之前txt檔案單個檔案超過2G,把單個txt檔案打包壓縮成一個tar.gz檔案了。所以我的python指令碼也需要修改。(伺服器c

C# 讀寫文字檔案並匯入Excel(一)

一、本程式的主要思想    利用ReadAllText和WriteAllText方法讀寫文字檔案,並且把他們以逗號分隔,形成能被Excel直接匯入並且分列的資料。 二、程式的執行結果    執行前,必須在相應目錄建立文字檔案,方便程式的讀寫。程式執行前的資料如圖:   程

淺談C語言中文字檔案與二進位制檔案

C語言中,按檔案中的資料組織形式來分,資料檔案可分為ASCII碼檔案(即文字檔案)和二進位制檔案。 文字檔案在磁碟中存放時每個字元對應一個位元組,用於存放對應的ASCII碼。 二進位制檔案把資料按其在記憶體中的儲存形式存放在磁碟上,一個位元組並不一定對應一個字元。 對於A