Ⅰ c语言读取文件数据并进行计算(平均值,最值,0的个数)
#include
int main()
{ int i,j,n=0,n0=0,k=0;
double a[10000],s=0,t;
FILE *fp;
char c;
if(!(fp=fopen("text.txt","r")))
{printf("File open error!
");
return 0;
}
for(;fscanf(fp,"%lf%c",&a[n],&c)!=-1;n++)
{if(a[n]==0)n0++;
if(c=='
')k++;
s+=a[n];
printf("%g ",a[n]); //不需要显示时请把此行删除
}
if(c==32)k++;
fclose(fp);
for(i=0;i<10;i++)
for(j=0;j<n-1-i;j++)
if(a[j]>a[j+1])
{t=a[j]; a[j]=a[j+1];a[j+1]=t;}
printf("
平均值:%g
",s/n);
printf("前10个最大的数:");
for(i=n-1;i>n-11;i--)
printf("%g ",a[i]);
printf("
0的个数:%d
",n0);
printf("共有%d行
",k);
return 0;
}
Ⅱ C语言如何读取文本文档里的数据并计算
#include<iostream>
usingnamespacestd;
intmain()
{
freopen("testin.txt","r",stdin);
freopen("testout.txt","w",stdout);
intn;
cin>>n;
cout<<n<<endl;
fclose(stdin);
fclose(stdout);
return0;
}
如下图片:
Ⅲ C语言怎么样连续读取文件数据,统计单个文件的数据量
#include<iostream>
#include<fstream>
using namespace std;
#define n 3
int main()
{
int i;
char res[]="result",
suffix[]=".txt",
go_on;
for(i=1;i<=n;i++)
{
char Rname[10],Wname[20];
itoa(i,Rname,10);
strcpy(Wname,Rname);
strcat(Rname,suffix);
strcat(Wname,res);
strcat(Wname,suffix);
cout<<Rname<<':'<<endl;
ifstream infile(Rname,ios::binary);
ofstream outfile(Wname,ios::binary);
if(!infile||!outfile)
{
cerr<<"error"<<endl;
exit(1);
}
int j=0,count=0;
double d,
*dp;
cout<<"数组读取:"<<endl;
while(!infile.eof())
{
infile>>d;
count++;
}
infile.clear();
infile.seekg(0);
dp=new double[--count];
while(j<count)
{
infile>>dp[j++];
cout<<dp[j-1]<<' ';
if(j%(count/8)==0) cout<<endl;
}
cout<<endl<<"共"<<count<<"个数"<<endl;
infile.clear();
infile.seekg(0);
while(!infile.eof())
{
infile.read((char *)&d,sizeof(d));
outfile.write((char *)&d,sizeof(d));
}
delete []dp;
infile.close();
outfile.close();
cout<<"是否继续(是:y 否:anykey):";
cin>>go_on;
if(go_on!='Y'&&go_on!='y') break;
system("cls");
}
return 0;
}
Ⅳ C语言小白求问。如何读取字符串文件,并根据不同长度的单词统计总共出现的频率
看你问题演示,是统计一段英文文字中,不同单词出现次数(但world明明只出现1次,你演示代码却输出的是2)。
如想统计一段文件中的英文单词出现次数。需实现以下功能:
一、遍历字符串,通过分割符号空格及标点符号获取单词数组。
二、大小写转换,把数组单词全部转换为大写或者小写(识别同一个单词不同大小写)。
三、遍历单词数组,累加统计每个单词数量。(可遍历到第一个单词作为当前统计对象,之后每遍历到相同单词,就将对应变量计数+1,并将该单词字符串置0)。
思路:可先用fopen打开文件流,之后用fgets把全文读出到字符串变量。
之后两个选择:
1、直接变量字符串,遇字母作为一个单词开始,遇非字母作为一个字母结束,这样把所有单词,拆出来放到字符串数组中。(大小写转换可同时进行)。
2、变量字符串将所有标点符号全部替换成空格,再用fprintf写入覆盖原文件,再用循环fscanf(返回-1表示读取结束),将所有以空格间隔的单词直接读取到字符串数组。
最后变量字符串数组。
Ⅳ c语言怎么读取文件内容并且计算
主要通过fscanf,fprintf格式化输入输出函数实现,主要代码如下,
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *pf=NULL;
char name[20];//存储用户名
float salary=0;//存储工资
pf=fopen("test.txt", "r+" );//test.txt文件中内容为kobe 90000.80
if(!pf)
{
printf("打开文件失败,程序退出!");
exit(1);
}
fscanf(pf,"%s %f",name,&salary);
salary*=0.9;//处理工资,例如扣除五险、扣税等。
fprintf(pf,"\n%f",salary);//写入test.txt文件中
printf("%s %f\n",name,salary);//输出kobe 81000.718750
if(pf)//关闭文件
{
fclose( pf);
pf=NULL;
}
return 0;
}
int fscanf( FILE *stream, const char *format, ... );函数fscanf()以scanf()的执行方式从给出的文件流中读取数据,
fscanf()的返回值是事实上已赋值的变量的数,如果未进行任何分配时返回EOF。
int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送参数到由stream指定的文件。fprintf()只能和printf()一样工作,
fprintf()的返回值是输出的字符数,发生错误时返回一个负值。
Ⅵ 您好,请问用c语言如何读取txt文件中的数据,并统计数据中相同数字的个数
#include <stdio.h>
void main() {
int i,j;
double data[29][34];
FILE *fp;
fp = fopen("Faults_NNA.txt","r");
for(i=0;i<29;i++) {
for(j=0;j<34;j++) {
fscanf(fp,"%6.4f",&data[i][j]);
printf("%6.4f\n",data[i][j]);
}
}
fclose(fp);
}
Ⅶ c语言从文件中读取数据并统计偶数的个数…请问我错哪儿了
请去掉fp++;fp文件指针,会自动记录当前的读取位置,所以不能fp++;
首先,fread 这个函数你没有搞懂,你需要看看api
函数原型
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
参 数
buffer
用于接收数据的内存地址
size
要读的每个数据项的字节数,单位是字节
count
要读count个数据项,每个数据项size个字节.
stream
输入流
返回值
实际读取的元素个数。如果返回值与count不相同,则可能文件结尾或发生错误。从ferror和feof获取错误信息或检测是否到达文件结尾。
所以你上面的count的应该这样理解,读取sizeof(int)个字节,count的意思是读取多少个这样sizeof(int)的字节;
Ⅷ C语言读取文件时如何统计函数个数
摘要 如果可以统计起始和结束,那也就是可以统计函数个数!