當前位置:首頁 » 編程語言 » c語言讀取

c語言讀取

發布時間: 2022-02-05 21:42:09

c語言如何讀取文件

C語言讀取文件的具體步驟如下:

我們需要准備的材料分別是:電腦、C語言。

1、首先我們打開需要讀取的文件,點擊打開左上角文件中的「另存為」。

㈡ c語言怎樣按行讀取

區分讀取的源,有如下兩種情況:

1 從標准輸入讀取,即stdin。
可以使用gets函數:
char * gets(char *str);
該函數會從標准輸入中讀取一行數據,直到讀到\n,並將\n替換為字元串結束符\0,讀取到的數據以字元串形式存於str中。
需要注意的是,使用gets函數時,需要確保str指向空間大小,必須超過任意一行的長度,否則會出現越界操作。有些編譯器會報gets是不安全的,就是這個原因。

2 從文件讀取。
對於一個被打開的文件,如果其是可讀的,那麼可以通過fgets函數實現按行讀取。
char *fgets(char *buf, int bufsize, FILE *fp);
功能與gets類似,只是源不同。fgets從fp中讀一行數據存到buf中,同時會判斷bufsize,如果一行數據的長度超過了bufsize,那麼只讀入bufsize長度的數據,確保不會溢出。否則讀取整行。
由於在C語言中,標准輸入stdin也是以文件指針形式存在的,所以gets可以用
fgets(str, bufsize, stdin);
替代,這樣代碼量稍多一些,但可以更安全。

㈢ C語言怎樣讀取文本的每一行

可以使用fgets函數來實現。

1 函數名:
fgets
2 聲明形式:
char *fgets(char *buf, int bufsize, FILE *stream);
3 頭文件:
stdio.h

4 功能及參數說明:
從stream中讀取一行數據存到buf中。如果數據長度小於bufsize,那麼讀入整行數據,並將換行符轉換為字元串結束符\0。 如果數據長度超過bufsize,那麼只讀入bufsize大小的數據,並在結尾添加\0。
5 返回值:
成功,則返回第一個參數buf;
在讀字元時遇到end-of-file,則eof指示器被設置,如果還沒讀入任何字元就遇到這種情況,則buf保持原來的內容,返回NULL;
如果發生讀入錯誤,error指示器被設置,返回NULL,buf的值可能被改變。

㈣ 關於c語言如何讀取數據

你要讀哪3位?
連著一起的3位,還是獨立的3位

連一起: (val&(0x07<<n))>>n
0-2: (val&0x07)>>0
1-3: (val&0x0e)>>1
2-4: (val&0x1c)>>2
3-5: (val&0x38)>>3
4-6: (val&0x70)>>4
5-7L (val&0xe0)>>5

單獨第n位:
(val&(0x1<<n))>>n

㈤ c語言讀取文本文件

1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。
2、常式:

#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.txt","r");//打開輸入文件
FILE*fp2=fopen("output.txt","w");//打開輸出文件
if(fp1==NULL||fp2==NULL){//若打開文件失敗則退出
puts("不能打開文件!");
rturn0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串

printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數

fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數

fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return0;
}

㈥ c語言讀取txt

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define MAX_LINE 1024

int main()

{
char buf[MAX_LINE];

int len;

if((fp = fopen("test.txt","r")) == NULL)

{

perror("fail to read");

exit (1) ;

}
while(fgets(buf,MAX_LINE,fp) != NULL)

{
len = strlen(buf);
buf[len-1] = '\0';

printf("%s %d \n",buf,len - 1);

}

return 0;

}

㈦ C語言文件的文本怎麼讀取

根據你給的文件保存的數據的格式,我猜測每一行是一個學生的信息,格式如下:

序號 姓名 成績1 成績2 成績3 ...

知道了題意和題目要求,那麼一切將會變得簡單起來,請看代碼。

#include<stdio.h>

#defineREAD_FILE"data.txt"/*要讀取的文件的名字*/
#defineWRITE_FILE"T_data.txt"/*要寫入的文件的名字*/
#defineSTU_NUM10/*最大學生人數*/
#defineMAX_LEN50/*一行的最大字元數*/
/*
*獲取總分函數
*/
intget_sum(charconst*msg){

intsum=0;
inttmp;
/*
*遍歷一行字元
*/
while(*msg!=''){

/*
*以空格為一項成績的分隔標志
*/
tmp=0;
while(*msg!=''&&*msg!=''){
/*
*char類型數字轉int類型數字
*/
tmp=(tmp*10)+((*msg)-'0');
msg++;
}
/*
*求總和
*/
sum+=tmp;
if(*msg==''){

break;
}
msg++;
}
returnsum;
}

intmain(void){

FILE*rfp,*wfp;/*聲明讀取/寫入文件指針*/
charstudent[STU_NUM][MAX_LEN];/*存放讀取到的數據緩存數組*/
charch;
intsum[STU_NUM];/*成績總和*/
inti=0;
intj=0;
intk=0;
rfp=fopen(READ_FILE,"r");/*打開數據文件*/
if(rfp==NULL){

perror(READ_FILE);
exit(1);
}
for(i=0;i<STU_NUM;i++){

sum[i]=0;
}
/*
*逐個字元讀取文件的內容,
*直至遇到文件結束符為止。
*/
i=0;
while((ch=fgetc(rfp))!=EOF){
/*
*遇到換行符表示已經讀取完一個學生的資料;
*否則繼續將數據寫入緩存數組中。
*/
if(ch==' '){

student[i][j]='';
j=0;
i+=1;
}else{

student[i][j++]=ch;
}
}
student[i][j]='';
wfp=fopen(WRITE_FILE,"w");
/*
*開始分析數據
*根據文件存放數據的格式,從下標為2的位置開始分析數據。
*當遇到空格時證明後面的數據是成績,每一科成績分數均以空格分開。
*printf是顯示出來。
*fprintf是寫入另一個文件。
*/
for(j=0;j<=i;j++){

k=2;
printf("%c%c",student[j][0],student[j][1]);
fprintf(wfp,"%c%c",student[j][0],student[j][1]);
while(student[j][k]!=''){

printf("%c",student[j][k]);
fprintf(wfp,"%c",student[j][k]);
k++;
}
printf("'ssumofscoresumis");
fprintf(wfp,"'ssumofscoresumis");
sum[j]=get_sum(&student[j][k]);
printf("%d ",sum[j]);
fprintf(wfp,"%d ",sum[j]);
}
/*
*記得關閉文件哦。
*/
fclose(rfp);
fclose(wfp);
return0;
}

以下是運行結果:

這個程序僅僅是針對你的題目要求來的,文件存放的數據格式不能更改,否則會出錯。每一行必須以回車鍵結束,最後一行的最後一個字元之後什麼也不能有。我盡量以你看得懂的方法來寫,關鍵部分都帶有注釋,有問題不要追問了,自己多思考思考,實在解決不來還是很歡迎可以追問的哦,哈哈哈!!!

㈧ C語言文件讀取

你好!!
fscanf 函數,讀文件的時候,是遇到空格結束一次讀取的,你文件每行記錄不確定;

不能批量格式讀取了,只能採用每次讀取一個的方式完成!

㈨ c語言從文件讀取數據

四個整型 一個浮點型, 所以 用數組的話 只能是用浮點型數組, 即float a[5];

或者用五個變數, 可以是四個整型,一個浮點型. int a,b,d,e; float c;

打開文件部分相同.

FILE*fp=fopen("input1.txt","r");

讀取數據, 數組方式:

inti;
floata[5];
fscanf(fp,"%f,",&a[0]);
for(i=1;i<5;i++)
fscanf(fp,"%f",&a[i]);

變數方式:

inta,b,d,e;
floatc;
fscanf(fp,"%d,%d%f%d%d",&a,&b,&c,&d,&e);

㈩ C語言中 文件的讀取

示常式序。

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
FILE *fp;
double u[20];
int i;

fp=fopen("c:\\a.txt","r"); /*打開要讀取數字的文件*/
for (i = 0; i<20; i++) { /*打開的從文件中讀取20個數字*/
fscanf(fp,"%lf",&u[i]); /*從fp文件讀取一個double類型的數字保存到數組u中,fscanf()函數除了第一個參數是文件指針外,其餘的用法和scanf()函數一致,所以這里的格式控制字元串要求文件中的數字要用空格或者回車分隔*/
printf("%f\t",u[i]); /*輸出剛讀取的數字*/
}
fclose(fp); /*關閉文件*/
return 0;
}
//---------------------------------------------------------------------------

熱點內容
社區電商源碼 發布:2024-05-09 02:33:00 瀏覽:148
遼事通登記需要的密碼是什麼 發布:2024-05-09 02:25:45 瀏覽:283
雲伺服器選擇什麼系統 發布:2024-05-09 01:55:51 瀏覽:968
mel腳本編程全攻略 發布:2024-05-09 01:54:43 瀏覽:479
如何在機房安裝ntp伺服器 發布:2024-05-09 01:13:57 瀏覽:206
ideajavaidea 發布:2024-05-09 01:02:14 瀏覽:965
oas存儲 發布:2024-05-09 00:57:49 瀏覽:801
android點擊彈出菜單 發布:2024-05-09 00:56:52 瀏覽:99
大家對雲伺服器認知度 發布:2024-05-09 00:46:00 瀏覽:659
思科視頻會議如何配置 發布:2024-05-09 00:45:59 瀏覽:669