C语言简单的文件打开/读取数据/写回文件操作

期末考试考试成绩出来了,想写一个简单的程序来计算一下自己的加权平均,竟然忘记了文件的操作方法,写出来复习一下。

过程就是读取文件中的内容,然后计算加权平均:

成绩文件"1.txt"(第一列是成绩,第二列是学分):

 

75 1
75 3
87 3
83 2
81 3
88 3
75 3
71 3
85 1
84 3
83 3
88 1
91 2
85 1

 

·C++代码(ifstream/ofstream/fstream文件输入输出流):

 

#include 
#include
#include
using namespace std;

ifstream fin;    //定义文件输入流
ofstream fout;   //定义文件输出流

int main()
{
    fin.open("1.txt") ; //打开输入文件,从1.txt中读取成绩数据
    if(!fin)
    {
	cout<<"can not open the file"<>a[i][0]>>a[i][1])    //依次从1.txt中读入数据到内存
        i++;
    int x=0,y=0;
    for(int j=0;j

 

 

 

 

2.txt内容:81.6563


C代码(fopen/fscanf/fprintf,打开文件/读取数据/写入数据):

 

 

#include

int main()
{
    FILE *fp,*fp1;
    int a[20][2];
    fp=fopen("1.txt","r+");   //以可读的方式打开1.txt文件
    fp1=fopen("2.txt","w");   //以可写的方式打开2.txt文件 
    int i=0;
    while( !feof(fp) )        //读至文件末尾
    {
        fscanf(fp,"%d%d",&a[i][0],&a[i][1]);    //从文件1.txt中读取数据
        i++;
    }
    int x=0,y=0;
    for(int j=0;j
2.txt内容:81.656250

 

在linux下用"<"符号从文件中读取数据,举个很简单的例子:

input.cc:

 

#include
using namespace std;
  
int main()
{
    int a,b;
    cin>>a>>b;
    cout<

input.txt:

 

 

3 1

运行方法:

 

这么做的缺点就是程序无法判断文件读取结束,如果遇到循环while的情况,有可能重复读取最后一行的数据不结束。

 

 

 

还可以用shell脚本写,抽空可以学习补充。

 

文章链接:http://blog.csdn.net/lavorange/article/details/9990103

 

 

 

 

 

 


 

你可能感兴趣的:(C/C++/Golang)