本文目錄一覽:
- 1、C語言怎樣將.txt文件中的數據寫入到結構體中去
- 2、C語言中怎麼樣把文件裡面的數據讀入到結構體中?
- 3、c語言怎麼把一個結構體存入文件,在把文件讀取怎
- 4、c語言,怎麼從文件讀取數據到結構體,求助
C語言怎樣將.txt文件中的數據寫入到結構體中去
txt文件中的數據寫入到結構體中去的源代碼如下:
#includestdio.h
#include string.h
//可以退出的頭文件
#include stdlib.h
//結構體的長度
#define DATALEN 15
//函數聲明
//定義結構數組
struct wordUnit{
int id; //id
char word[10]; //詞語
char depId[10]; //依存詞語的id
char pos[10]; //詞性
char depRel[10]; //依存目標的關係
};
int main(){
FILE *data;//要讀取的文件指針
int i=0;//結構題數組移動
struct wordUnit words[DATALEN];
if((data=fopen(“data3.txt”,”r”))==NULL){
printf(“Can not open file\n”);
return 0;
}
while(!feof(data)){
//原txt文檔的數據之間是以空格隔開的
}
fclose(data);
for(int j=0;ji;j++){
}
return 0;
}
擴展資料
1、使用關鍵字struct,它表示接下來是一個結構體。
2、後面是一個可選的標誌(book),它是用來引用該結構體的快速標記。
C語言中怎麼樣把文件裡面的數據讀入到結構體中?
文本文件可以一個一個的讀在分別賦值給結構,如果是二進制數據可以讀取一個結構整體,
如
struct
data
{
int
x;
doub
y;
}
d;
find.xd.y;
或
fread((char*)(d),
sizeof(data),
1,
fin);
c語言怎麼把一個結構體存入文件,在把文件讀取怎
C語言,要將結構體中的數據存到磁盤上需要使用與文件操作相關的庫函數。
首先要使用文件打開函數fopen()。
fopen函數用來打開一個文件,其調用的一般形式為: 文件指針名=fopen(文件名,使用文件方式) 其中,“文件指針名”必須是被說明為FILE 類型的指針變量,“文件名”是被打開文件的文件名。 “使用文件方式”是指文件的類型和操作要求。“文件名”是字符串常量或字符串數組。
其次,使用文件讀寫函數讀取文件。
在C語言中提供了多種文件讀寫的函數:
·字符讀寫函數 :fgetc和fputc
·字符串讀寫函數:fgets和fputs
·數據塊讀寫函數:freed和fwrite
·格式化讀寫函數:fscanf和fprinf
最後,在文件讀取結束要使用文件關閉函數fclose()關閉文件。
下面使用格式化讀寫函數fscanf和fprintf實現對文件A.txt(各項信息以空格分割)的讀取,並存入結構體數組a中,並將它的信息以新的格式(用製表符分割各項信息)寫入B.txt,實現對A.txt的處理。
C語言源程序如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include stdio.h
#include stdlib.h
#include assert.h
typedef struct student{
char name[32];
int no;
char sex[16];
float score;
} stu;
int main(int argc, char* argv[])
{
//打開文件
FILE * r=fopen(“A.txt”,”r”);
assert(r!=NULL);
FILE * w=fopen(“B.txt”,”w”);
assert(w!=NULL);
//讀寫文件
stu a[128];
int i=0;
while(fscanf(r,”%s%d%s%f”,a[i].name,a[i].no,a[i].sex,a[i].score)!=EOF)
{
printf(“%s\t%d\t%s\t%g\n”,a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到顯示器屏幕
fprintf(w,”%s\t%d\t%s\t%g\n”,a[i].name,a[i].no,a[i].sex,a[i].score);//輸出到文件B.txt
i++;
}
//關閉文件
fclose(r);
fclose(w);
system(“pause”);
return 0;
}
c語言,怎麼從文件讀取數據到結構體,求助
C 結構體
實現讀取文件並保存到結構體代碼:
#include<stdio.h>
#include<stdlib.h>
//文件操作格式化讀取保存到結構體數組
#defineBUFSIZE1000
structdata
{
charG[4];
floatXs;//起點坐標
floatYs;
floatE;
};
intmain()
{
FILE*fp;
inti,j,r_n=0;
charbuf[BUFSIZE],c;
//打開文件
fp=fopen("E:\\line.txt","r");
if(fp==NULL)
{
printf("Cannotopenfile!\n");
return1;
}
//計算文件中數據的行數
while(!feof(fp))
{c=fgetc(fp);
if(c=='\n')
r_n++;
}
printf("r_n=%d\n",r_n);
rewind(fp);//將指針重置到第一行
structdata*line1=NULL;
line1=(structdata*)malloc(sizeof(structdata)*(r_n+1));//創建一個結構體含有(r_n+1)個數據
for(i=1;i<=r_n;i++)
{
fgets(buf,BUFSIZE,fp);//一次讀取一行
sscanf(buf,"%sX%fY%fE%f",&line1[i].G,&line1[i].Xs,&line1[i].Ys,&line1[i].E);//分別跳過XYE讀取數據
}
//關閉文件
fclose(fp);
for(i=1;i<=r_n-1;i++)
{
printf("\n%s%.3f%.3f%.3f",line1[i].G,line1[i].Xs,line1[i].Ys,&line1[i].E);
}
free(line1);//釋放
return0;
}
運行效果:
擴展資料:
函數sscanf(),它是C語言中從一個字符串中讀進與指定格式相符的數據的函數。
函數原型:
intsscanf(stringstr,stringfmt,mixedvar1,mixedvar2...);
intscanf(constchar*format[,argument]...);
sscanf與scanf類似,都是用於輸入的,只是後者以屏幕(stdin)為輸入源,前者以固定字符串為輸入源。
其中的format可以是一個或多個{%[*][width][{h|l|I64|L}]type|''|'\t'|'\n'|非%符號}
註:
1、*亦可用于格式中,(即%*d和%*s)加了星號(*)表示跳過此數據不讀入.(也就是不把此數據讀入參數中)
2、{a|b|c}表示a,b,c中選一,[d],表示可以有d也可以沒有d。
3、width表示讀取寬度。
4、{h|l|I64|L}:參數的size,通常h表示單字節size,I表示2字節size,L表示4字節size(double例外),l64表示8字節size。
5、type:這就很多了,就是%s,%d之類。
6、特別的:%*[width][{h|l|I64|L}]type表示滿足該條件的被過濾掉,不會向目標參數中寫入值
支持集合操作:
%[a-z]表示匹配a到z中任意字符,貪婪性(儘可能多的匹配)
%[aB']匹配a、B、'中一員,貪婪性
%[^a]匹配非a的任意字符,貪婪性
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245805.html