输入一行字符(长度不确定),先把输入的字符串写到文本文件,然后从该文件中读出来?

编写程序,输入一行字符(长度不确定),先把输入的字符串写到文本文件string.txt,然后从该文件中读出来,最后再统计字符串中的大写字母、小写字母和数字的个数。

可以循环读取字符,然后写入文件,直到输入EOF结束;然后再打开文件,循环读取字符,然后同时统计大写字母,小写字母,数字的个数,读取完文件,最后在打印结果即可。

代码如下:

参考链接:


C/C++中的结束输入条件判断 (scanf、EOF、getchar()、cin.get()、getline)_c++结束输入_Jaster_wisdom的博客-CSDN博客 本教程主要适用于一些程序比赛或大公司机试中的输入数据的处理,总的来说,可以分为以下三种情况:情况一:输入的测试样例有多组,每组需要相同逻辑的处理;处理方案:在C语言中可利用scanf("%d",&n)!=EOF,在C++中可以使用while(cin>>n)。例如:计算两数之和,输入可能有多组样例。#include <iostream>using ..._c++结束输入 https://blog.csdn.net/jaster_wisdom/article/details/81161896


#include <iostream>
#include <fstream>

using namespace std;

int main(void){
    
    // https://blog.csdn.net/weixin_43918046/article/details/106367507
    fstream f;
    f.open("string.txt",ios::out);  // 打开文件 
    
    char ch;
    // https://blog.csdn.net/weixin_43918046/article/details/106367507
    while(cin>>ch){  // 循环读取字符直到输入EOF 
        f<<ch;  // 将读取的字符写入文件 
    }  
    f.close();  // 关闭文件 
    
    int capitalNums=0;  //大写字母的个数 
    int lowercaseNums=0;  // 小写字母的个数 
    int numbers=0;    // 数字的个数 
    f.open("string.txt",ios::in);   // 打开文件 
    while(f>>ch){   // 循环从文件读取字符,直到文件结尾 
        
        // 统计大写字母的个数 
        if(ch>='a'&&ch<='z'){  
            capitalNums++; 
        }
        
        // 统计小写字母的个数 
        if(ch>='A'&&ch<='Z'){
            lowercaseNums++;    
        }
        
        // 统计数字的个数 
        if(ch>='0'&&ch<='9'){
            numbers++;
        }
        
    }
    
    
    // 打印结果 
    cout<<"大写字母的个数:"<<capitalNums<<endl;
    cout<<"小写字母的个数:"<<lowercaseNums<<endl;
    cout<<"数字的个数:"<<numbers<<endl;
    
    return 0;
    
} 

img