1. 用c语言怎么读入一行行的数据
fread()函数是用来读取二进制文件的,就是说为建立存储的东西,就像内从内存里把那段数据块直接搬过来一样,而不是用记事本打开就能看到里面的内容,只是一堆乱码。你的文本文件,可以用fscanf()函数来读取。
把
fread(&F[n],sizeof(double),1024,fp);
改为
fscanf(fp,"%lf",&F[n]);
即可
2. 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++ ;
}
}
3. 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);
替代,这样代码量稍多一些,但可以更安全。
4. 如何用c语言读取txt文件中的其中一行
#include
"stdio.h"
#include
"string.h"
void
main()
{
int
n;
FILE
*fin;
char
s[25];
fin=fopen("c:\\a.txt","r");
fgets(s,25,fin);/*用fgets读第一行到数组s中*/
n=strlen(s);
fseek(fin,n+1,SEEK_SET);/*将文件指针移到下一行*/
fgets(s,25,fin);/*读取第二行的字符串*/
printf("%s",s);
}
这个是我写的一个,如果你想读到第n行的话,用一个for循环控制使文件指针移到第n行就行了
5. c语言输入一行文本输出一行文本
比较简单的方法就是设个全局变量,参考代码如下:
#include<stdio.h>
charstr[500];
char*GetText()
{
gets(str);
returnstr;
}
intmain()
{
puts(GetText());
return0;
}
6. 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,"...",...);
7. 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;
}
8. 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);
}
9. 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(" ");
}
(9)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;
}
10. 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]);
}