怎么解决在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;
}
结果:
原字符串文件:
存储字母和数字的文件:
c语言用
fopen打开文件 fwrite写 fread读 或fprintf 写 fscanf 读取
C++语言用
ostream istream