C语言c++程序设计

怎么解决在main函数中创建一个文件,将键盘输入的字符串写入文件中。打开该文件,读出字符串。计算字符串中字母、数字、空格、其它符号出现的次数,并将字母和数字存放到另一个文件中。

代码:

/*
    键盘输入一行字符,写入一个文件,再把该文件内容读出显示在屏幕上。 
*/
 
 
#include <stdio.h>
#include <string.h>
#include<iostream>
int main () {
 
 
    //定义变量
    char ch; 
    
    //打开文件
    FILE *fp = fopen("inputString.txt", "w+"); 
    FILE *fp1 = fopen("number.txt", "w+");
    //判断文件是否打开成功
    if (fp!=NULL&&fp1!=NULL) {
    
        //提示用户输入一个字符串
        printf("请输入要保存的字符串:\n");
        //接收,循环写入到文件中
        ch = getchar();
        //判断是否输入了\n
        while (ch!='\n') {
            fputc(ch, fp); //把字符保存到文件中
            ch = getchar(); //获取下一个字符 
        }
        //读取出来并显示到控制台    
        rewind(fp); //作用是把文件指针,重新指向文件首地址 
        //从文件中读取一个字符
        ch = fgetc(fp);
        int a1=0;
        int b1=0;
        int c1=0;
        int d1=0;
        while (ch!=EOF) {
            //显示ch到控制台
            putchar(ch);
            if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
            {
                a1++;
                fputc(ch, fp1); //把字符保存到文件中
            }
            else if(ch>='0'&&ch<='9')
            {
                b1++;
                fputc(ch, fp1); //把字符保存到文件中
            }
            else if(ch==' ')
            {
                c1++;
            }
            else
            {
                d1++;
            }
            //读取一个字符
            ch  = fgetc(fp); 
        } 
        printf("\n");
        printf("本文本有%d个字母\n",a1);
        printf("本文本有%d个数字\n",b1);
        printf("本文本有%d个空格\n",c1);
        printf("本文本有%d个其它\n",d1);
        //printf("\n"); 
    //读取显示文件
    }
    //关闭文件指针 
    fclose(fp);
    fclose(fp1);
    system("pause");
    return 0; 
}

结果:

img

原字符串文件:

img

存储字母和数字的文件:

img

c语言用
fopen打开文件 fwrite写 fread读 或fprintf 写 fscanf 读取
C++语言用
ostream istream