美文网首页散文想法简友广场
C语言第16周作业(文件打开、关闭,读写)

C语言第16周作业(文件打开、关闭,读写)

作者: Cache_wood | 来源:发表于2020-12-31 12:51 被阅读0次

1.

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define FILE_NAME "name.txt"

int main(){
    FILE *fp=fopen(FILE_NAME,"r");
    if(NULL==fp){
        printf("Failed to read the file %s \n",FILE_NAME);
        exit(-1);
    }
    int ch=fgetc(fp);
    int ch1;
    printf("Name:");
    while(ch!=EOF){
        ch1 = ch;
        if(ch1=='\n'){
            printf("\nName:");
        }
        ch = fgetc(fp);
        //printf("%d\n",ch1);
        if(ch1==9&&isdigit(ch)) printf("\nAddress:");
        if(ch1!='\n') putchar(ch1);
        if(ch1=='.'&&ch==9){
            printf("\nCity,State:");
        }
    }
    fclose(fp);
    return 0;
}

2.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#define FILE_NAME "wage.txt"

int main(){
    FILE *fp = fopen(FILE_NAME,"r");
    if(fp == NULL){
        printf("Can't open %s\n",FILE_NAME);
        exit(EXIT_FAILURE);
    }
    printf("Name\t   Social Security Number   Total revernue\n");
    int ch1,ch=fgetc(fp);
    while(ch!=EOF){
        ch1 = ch;
        ch = fgetc(fp);
        if(isdigit(ch1)&&ch=='.'){
            int sum = 0;
            while (ch!='\n'){
                if(isdigit(ch)){
                    sum = sum*10 +(ch-48);
                    //printf("sum = %d\n",sum);
                }
                ch = fgetc(fp);
            }
            double para = ch1-48+(sum/100)/100.0;
            printf("\t%.1lf",para*(sum%100));
        }
        putchar(ch1);
    }
    fclose(fp);

    return 0;
}

3.

#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "text.dat"

int main(){
    FILE *fp = fopen(FILE_NAME,"r");
    if(fp == NULL){
        printf("Can't open %s\n",FILE_NAME);
        exit(EXIT_FAILURE);
    }
    char ch = fgetc(fp);
    int cnt = 0;
    while(ch!=EOF){
        if(cnt%2==0) putchar(ch);
        ch = fgetc(fp);
        cnt++;
    }
    fclose(fp);

    return 0;
}
//text.dat
hello, everyday! Today I will give a presentation about covid-19.

4.

//输入之前数据
30 60 40 80 90 120 150 130 160 170
#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "Pollen.dat"

int main(){
    int num[10];
    int number;
    printf("enter a new number:");
    scanf("%d",&number);
    FILE *fp = fopen(FILE_NAME,"r");
    if(fp == NULL){
        printf("Can't open %s\n",FILE_NAME);
        exit(EXIT_FAILURE);
    }
    int i = 0,total = 0;
    while(!feof(fp)){
        fscanf(fp,"%d",&num[i]);
        //printf("%d\n",total);
        total +=num[i];
        i++;
    }
    //printf("%d\n",total);
    fclose(fp);

    for(i=0;i<9;i++){
        num[i] = num[i+1];
    }
    num[9] = number;
    for(i=0;i<10;i++){
        printf("%d\n",num[i]);
    }
    
    fp = fopen(FILE_NAME,"w");
    if(fp == NULL){
        printf("Can't open %s\n",FILE_NAME);
        exit(EXIT_FAILURE);
    }
    printf("The average for the past ten days is %d\n",total/10);
    total = total -num[0]+num[9];
    printf("The average for the last ten days is %d\n",total/10);
    for(i=0;i<10;i++){
        fprintf(fp,"%d ",num[i]);
    }
    fclose(fp);

    return 0;
}
//输入190之后的数据
60 40 80 90 120 150 130 160 170 190 

5.

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

int main(int argc, char* argv[])
{
    if(argc!=2){
        printf("Usage: ./fs filename\n");
        exit(-1);
    }
    FILE *rf=fopen(argv[1],"r");
    if(NULL==rf){
        printf("Failed to read the file %s \n",argv[1]);
        exit(-1);
    }
    int ch;
    int i=0;
    long offset, last;
    fseek(rf,0L,SEEK_END);
    last=ftell(rf);
    for(offset=0;offset<=last;offset++){
        fseek(rf,-offset,SEEK_END);
        ch=fgetc(rf);
        switch(ch){
            case '\n':break;
            case EOF: break;
            default:printf("%c",ch);break;
        }
    }
    printf("\n");
    fclose(rf);
    return 0;
}

6.

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

int main(int argc,char *argv[]){
    char str[100];
    int num;
    printf("the number of files is:");
    scanf("%d",&num);
    FILE *fp;
    if(argc!=num+1){
        printf("usage:canopen filename\n");
        exit(EXIT_FAILURE);
    }
    for(int i=1;i<num+1;i++){
        if((fp = fopen(argv[i],"r"))==NULL){
            printf("%s can't be opened\n",argv[1]);
            exit(EXIT_FAILURE);
        }
        int ch=fgetc(fp);
        while(ch!=EOF){
            putchar(ch);
            ch = fgetc(fp);
        }
        fclose(fp);
    }

    return 0;
}

命令行下输入3个文件的名字,依次打开并打印之后关闭。



如果给出的文件数目与所要的文件数目不对应,程序会停止。

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

int main(int argc,char *argv[]){
    FILE *fp = fopen(argv[1],"r");
    if(fp == NULL){
        printf("Can't open %s\n",argv[1]);
        exit(EXIT_FAILURE);
    }
    int cnt = 0,cnt_line=0,cnt_word=0;
    char ch=fgetc(fp);
    while(ch!=EOF){
        if(isalpha(ch)){
            cnt++;
        }
        if(ch=='\n'){
            cnt_line++;
        }
        if(ch==' '){
            cnt_word++;
        }
        putchar(ch);
        ch = fgetc(fp);
    }
    fclose(fp);
    printf("\n\nthe number of characters are %d\n",cnt);
    printf("the number of lines are %d\n",cnt_line+1);
    printf("the number of words are %d\n",cnt_word+1);

    return 0;
}

7.

//txt文件 "telephone.txt"
404.817.6900
(215) 686-1776
312-746-6000
877 275 5273
6173434200
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define FILE_NAME "telephone.txt"

int main(){
    FILE *fp = fopen(FILE_NAME,"r");
    if(fp == NULL){
        printf("Can't open %s\n",FILE_NAME);
        exit(EXIT_FAILURE);
    }
    int cnt_line = 0;
   char ch=fgetc(fp);
    while(ch!=EOF){
        if(ch=='\n'){
            cnt_line++;
        }
        //putchar(ch);
        ch = fgetc(fp);
    }
    //fclose(fp);
    //fp = fopen(FILE_NAME,"r");
    rewind(fp);

    for(int k=0;k<cnt_line+1;k++){
        char str[100];
        int i = 0,j = 0;
        fgets(str,sizeof(str),fp);
        printf("(");
        while(i<10){
            if(isdigit(str[j])){
                printf("%c",str[j]);
                i++;
                if(i==3) printf(") ");
                if(i==6) printf("-");
            }
            j++;
        }
        printf("\n");
    }
    //printf("%s",str);
    fclose(fp);
    return 0;
}

8.

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

#define L 10

int main(int argc, char*argv[])
{
    if(argc!=2)
    {
        printf("Usage: ./br filename\n");
        exit(EXIT_FAILURE);
    }
    FILE *rf=fopen(argv[1],"rb");//rb是必需的
    if(NULL==rf)
    {
        printf("Failed to open the file %s.\n",argv[1]);
        exit(EXIT_FAILURE);
    }
    unsigned char buffer[L];//unsigned是必需的
    int j=0;
    printf("offset");
    printf("\t");
    printf("            Bytes            ");
    printf("\t");
    printf("Characters\n");
    printf("------");
    printf("\t");
    printf("-----------------------------");
    printf("\t");
    printf("----------\n");
    while(1)
    {
        int n=fread(buffer,sizeof(unsigned char),L,rf);
        //printf("n=%d\n",n);
        if(n<=L)
        {
            printf("%6d\t",j);
            j+=L;
            int i;
            for(i=0;i<n;i++)
            {
                printf("%02X",buffer[i]);
                if(i<n-1)
                    printf(" ");
            }
            if(n<L)
            {
                for(i=n;i<L-1;i++)
                    printf("   ");
                printf("  ");
            }
            printf("\t");
            for(i=0;i<n;i++)
            {
                if(isprint(buffer[i]))
                    printf("%c",buffer[i]);
                else
                    printf(".");
            }
            printf("\n");
            if(n<L)
            {
                break;
            }

        }
    }
    fclose(rf);
    return 0;
}

相关文章

  • C语言第16周作业(文件打开、关闭,读写)

    1. 2. 3. 4. 5. 6. 3. 命令行下输入3个文件的名字,依次打开并打印之后关闭。 如果给出的文件数目...

  • C语言文件的打开、关闭、读写

    @[toc] 文件指针 重定向 通常我们强制程序从文件读入而不是从键盘获得输入,方法是在命令行中放上文件的名字,并...

  • PHP文件

    PHP文件操作 像其他编程语言(c , java)一样,php内置了多个文件函数,用来完成文件的打开、读写、关闭等...

  • C语言读写文件

    C语言文件读写### 标准文件读写 非标准文件读写 标准文件读写 头文件 include 打开文件 函数原型:FI...

  • python语言IO编程

    一、文件读写 1、文件的打开和关闭。在python语言中,文件的打开和关闭分别使用的是open函数和close函数...

  • Python文件读写(open(),close(),with o

    Python内置了读写文件的函数,用法和C是兼容的。本节介绍内容大致有:文件的打开/关闭、文件对象、文件的读写等。...

  • python012-文件操作

    文件的基本操作 1 文件操作步骤 打开文件 读写等操作 关闭文件 注意:可以只打开和关闭文件,不进行任何读写操作。...

  • python 文件操作

    读写文件通常包含以下操作: 打开文件。获取文件对象 读写文件、对文件内容进行操作。 关闭文件。使用文件对象关闭文件...

  • 文件

    一、文件的打开与关闭: *打开:open() *关闭:close() 二、文件的读写: *写:write() *读...

  • Python学习基础知识之 文件的介绍以及常见操作

    目录 一、文件的打开和关闭 1.1打开文件open() 1.2关闭文件close( ) 二、文件的读写 2.1写数...

网友评论

    本文标题:C语言第16周作业(文件打开、关闭,读写)

    本文链接:https://www.haomeiwen.com/subject/wfmvnktx.html