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

c語言讀一行

發布時間: 2024-04-24 04:10:25

c語言怎樣一行一行讀文件

C語言可以通過fgets函數一次讀一行數據。

fgets函數原型如下:

char *fgets(char *buf, int bufsize, FILE *stream);

參數 說明

*buf: 字元型指針,指向用來存儲所得數據的地址。

bufsize: 整型數據,指明存儲數據的大小。

*stream: 文件結構體指針,將要讀取的文件流。

fgets函數注意細節如下:

  1. 從文件結構體指針stream中讀取數據,每次讀取一行。

  2. 讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦''),如果文件中的該行,不足bufsize個字元,則讀完該行就結束。

  3. 如若該行(包括最後一個換行符)的字元數超過bufsize-1,則fgets只返回一個不完整的行,但是,緩沖區總是以NULL字元結尾,對fgets的下一次調用會繼續讀該行。

  4. 函數成功將返回buf,失敗或讀到文件結尾返回NULL

② c語言:從文件f1.txt讀入一行字元,將其中所有小寫字母改寫為大寫字母,然後輸出到f2.txt中

程序如下:
#include <stdio.h>
int main()
{
FILE *fin, *fout;
char s[1024]; //假定一行不超過1024個字元
int i;
if ( (fin = fopen("f1.txt","r"))==NULL){
printf("Can not open f1.txt\n"); return 0;
}; //作為讀,打開文件
fgets( s,1024,fin); //讀一行
fclose(fin); //關文件
if ( (fout = fopen("f2.txt","w"))==NULL){
printf("Can not open f2.txt\n"); return 0;
}; //作為寫,打開文件
for (i=0;i<strlen(s);i++){
if (s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A';}; //若小寫字母,則改大寫,否則不變
fprintf(fout,"%s",s); //輸出
fclose(fout); //關文件
printf("output in f2.txt\n");
return 0;
}

③ c語言 如何從文件中讀取一行,處理過後存到另一個文件,再讀下一行,在處理,再存

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
FILE *fin,*fout;
char str1[81],str2[81]; //假定每行不超過80個字元
char *infile = "in.txt";
char *outfile = "out.txt";
fin = fopen(infile,"r"); // 讀格式打開,默認為文本類型
fout = fopen(outfile,"w"); // 寫格式打開,默認為文本類型
if((fin == NULL) || (fout == NULL)) {
printf("打開文件失敗!\n");
exit(1);
}
while(fscanf(fin,"%s",str1) == 1) {
// 在這兒處理串str1......
strcpy(str2,str1);
fprintf(fout,"%s",str2); // 寫入文件
}
fclose(fin);
fclose(fout);
return 0;
}

④ C語言 如何一行行讀文件

C語言中,使用fgets函數遍可以一行行讀取文件。
1、fgets函數:
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:從文件結構體指針stream中讀取數據,每次讀取一行。
說明:讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦值為\0)。如果該行不足bufsize個字元,則讀完該行就結束,如果該行超過bufsize-1個字元,則fgets只返回一個不完整的行,buf緩沖區以\0字元結束,下一次fgets調用會繼續讀取該行剩餘的字元;
頭文件:stdio.h;
返回值:若讀入成功,返回與參數buf相同的字元指針,若讀入過程中遇到EOF或發生錯誤,返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤還是遇到EOF。
2、常式:
#include
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
rturn 0;
}
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);//關閉輸出文件,相當於保存
return 0;
}

⑤ C語言getchar()和gets()的用法

C語言getchar()和gets()的用法:

1、gets讀一行,getchar()讀一個字元。

2、函數用法:
1)gets()用於從標准輸入流stdin讀入一個整行(以' '或EOF)結束,寫入ptr指向的字元數組,並返回這個指針;出錯或遇到文件結束時則返回NULL。行末的' '從流中取出,但不寫入數組。gets()不檢查被寫入的數組大小。

2)getchar()用於從標准輸入流stdin讀入一個字元,並返回這個字元。如果讀到文件結尾,則返回EOF。注意到EOF不能用char類型表示,所以getchar()函數返回的是一個int型的數。使用時也應該注意這一點。

拓展資料:

getchar是讀入函數的一種。它從標准輸入里讀取下一個字元,相當於getc(stdin)。返回類型為int型,為用戶輸入的ASCII碼或EOF。

gets從標准輸入設備讀字元串函數,其可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。

C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。

C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

網路——C語言

熱點內容
演算法前途 發布:2024-05-28 22:13:45 瀏覽:360
vs2008資料庫的連接 發布:2024-05-28 22:12:06 瀏覽:464
sqlserver資料庫的復制 發布:2024-05-28 22:10:31 瀏覽:659
如何看老電腦配置 發布:2024-05-28 22:09:27 瀏覽:77
access資料庫的層次 發布:2024-05-28 21:56:22 瀏覽:308
頁面訪問緊急升級新域名 發布:2024-05-28 21:55:38 瀏覽:725
壓縮機管路 發布:2024-05-28 21:26:07 瀏覽:306
安卓結束腳本 發布:2024-05-28 20:40:08 瀏覽:66
本地ubuntu伺服器搭建 發布:2024-05-28 20:40:03 瀏覽:100
地下城yg腳本 發布:2024-05-28 20:34:20 瀏覽:13