當前位置:首頁 » 編程語言 » c語言讀取一行
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言讀取一行

發布時間: 2022-02-02 16:45:46

c語言 讀一行

FILE *fin;
char namein[]="my_file.txt"; // 文件名
char *one_line; // 讀入的一行
int buff_size=120; //根據最長行字元定大小

if( ( fin = fopen(namein, "r") ) == NULL ) {
printf("can not open file %s\n",namein);
exit (-1);
};

one_line = (char *) malloc(buff_size * sizeof(char));

while ( fgets(one_line, buff_size,fin) !=NULL){
printf("I read: %s",one_line); // 讀一行打一行
};
fclose(fin);

------------
對每行進一步分析可以用
sscanf(one_line,"...",...);

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

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

voidmain()
{
charb[25];
//打開文件
FILE*fp;
fp=fopen("D:\a.txt","r");
//獲取文件內容,每次讀一個字元,包括空格
for(inti=0;i<25;i++)
//fscanf(fp,"%c",&b[i]);
fgets(&b[i],2,fp);
fclose(fp);

//顯示讀取到的內容
for(inti=0;i<25;i++)
printf("%c",b[i]);
}

Ⅲ 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語言怎麼讀入一行行的數據

fread()函數是用來讀取二進制文件的,就是說為建立存儲的東西,就像內從內存里把那段數據塊直接搬過來一樣,而不是用記事本打開就能看到裡面的內容,只是一堆亂碼。你的文本文件,可以用fscanf()函數來讀取。

fread(&F[n],sizeof(double),1024,fp);
改為
fscanf(fp,"%lf",&F[n]);
即可

Ⅳ c語言逐行讀取文件

可以使用fgets函數。

1 函數名:

fgets

2 聲明:

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

3 頭文件:

stdio.h

4 功能:

從文件結構體指針stream中讀取數據,每次讀取一行。讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦''),如果文件中的該行,不足bufsize個字元,則讀完該行就結束。如若該行(包括最後一個換行符)的字元數超過bufsize-1,則fgets只返回一個不完整的行,但是,緩沖區總是以NULL字元結尾,對fgets的下一次調用會繼續讀該行。函數成功將返回buf,失敗或讀到文件結尾返回NULL。因此我們不能直接通過fgets的返回值來判斷函數是否是出錯而終止的,應該藉助feof函數或者ferror函數來判斷。


5 參數:

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

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

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


6 返回值:

成功,則返回第一個參數buf;

在讀字元時遇到end-of-file(文件結尾),則eof指示器被設置,如果還沒讀入任何字元就遇到這種情況,則buf保持原來的內容,返回NULL;

如果發生讀入錯誤,error指示器被設置,返回NULL,buf的值可能被改變。


7 示例代碼:

逐行讀取in.txt中的數據,並列印。每行不超過100個字元。

intmain()
{
FILE*fp;
charbuf[101];
fp=fopen("in.txt","r");//打開文件
while(fgets(buf,sizeof(buf),fp))//每次讀取一行數據,直到讀取失敗。
{
printf("%s ",buf);//列印該行。
}
fclose(fp);//關閉文件。

return0;
}

Ⅵ C語言如何讀取一行數據,以空格分開

可以使用strtok函數做分割單詞。

#include<string.h>

voidmain()

{

chars[]="192.168.0.26";

char*delim=".";

char*p;

printf("%s",strtok(s,delim));

while((p=strtok(NULL,delim)))

printf("%s",p);

printf(" ");

}

(6)c語言讀取一行擴展閱讀

在C++中strtok的使用

#include<iostream>

#include<cstring>

usingnamespacestd;

intmain()

{

charsentence[]="Thisisasentencewith7tokens";

cout<<"Thestringtobetokenizedis: "<<sentence<<" Thetokensare: ";

char*tokenPtr=strtok(sentence,"");

while(tokenPtr!=NULL){

cout<<tokenPtr<<endl;

tokenPtr=strtok(NULL,"");

}

//cout<<"Afterstrtok,sentence="<<tokenPtr<<endl;

return0;

}

Ⅶ c語言讀取txt文件第一行並顯示的源程序

設文件在當前目錄下,名為123.txt。成功打開文件後,建立一個循環,從文件中讀取一個字元並判斷其是否為' ',若不是則輸出這個字元並繼續讀取下一下字元;若是' '則跳出循環,停止讀取、關閉文件。代碼如下:

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
FILE*fp;
charch;
if((fp=fopen("123.txt","r"))==NULL){
printf("Openthefilefailure... ");
exit(0);
}
while((ch=fgetc(fp))!=' ')
printf("%c",ch);
fclose(fp);
printf(" ");
return0;
}

Ⅷ c語言 讀取文件中某一行的前一行

1、用fgets函數可以讀取文件中某行的數據,某列數據就必須一個一個讀入每行的第幾個字元,再存入到一個字元串當中。

2、常式:

#include<stdio.h>
#include<string.h>
voidmain()
{
chara[100],b[100],c[100];
inti=3,j=4,k=0;//第三行,第四列
FILE*fp=fopen("data.txt","r");
while(fgets(c,100,fp)){//讀入每行數據
i--;
if(i==0)strcpy(a,c);//讀到第三行數據
b[k++]=c[j-1];//把每行的那列字元拷到b中
}
b[k]=0;
printf("第%d行數據:%s ",i,a);
printf("第%d列數據:%s ",j,b);
fclose(fp);
}

Ⅸ C語言,如何智能讀取一行的數字

很簡單啊,按回車讀取數據就可以了,當讀到回車時再進行計算就可以了。
int i,sum=0,cnt=0;
while(1)
{
scanf("%d", &i );
if ( getchar()=='\n')
{
if ( cnt > 0 )
printf("sum=%d\n", sum );
else
break;
sum=0;
cnt=0;
}
else
{
sum += i ;
cnt++ ;
}
}

Ⅹ c語言如何從文件中讀入一行數據

關鍵技巧:
每行數據個數隨機,可用
c
=
fgetc(fin);
ungetc(c,fin);
檢查是否讀到
換行符或文件結束符。
例如:
a.txt
1
2
3
45
56
6
7
8
9
10
至於記錄每行數據個數,存放到數組,等等,可以自己補充完善。
程序:
#include
<stdio.h>
int
main(
)
{
file
*fin;
int
a,c;
fin=fopen("a.txt","rw");
while(1){
c
=
fgetc(fin);
if
(c==eof)
break;
if
(c=='\n')
{printf("\n==========\n");
continue;};
ungetc(c,fin);
fscanf(fin,"%d",&a);
printf("%d
",a);
}
fclose(fin);
return
0;
}