3.从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存,输入的字符串以"!"结束。
//类似于例10.1
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char ch,filename[10];
printf("please input the name of the file:\n");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("can't open file!\n");
exit(0);
}
ch=getchar();
printf("please a string:\n");
ch=getchar();
if(ch>='a'&&ch<='z')
{
ch=ch-32;
}
while(ch!='!')
{
fputc(ch,fp);
putchar(ch);
ch=getchar();
if('a'<=ch&&ch<='z')
{
ch=ch-32;
}
}
fclose(fp);
putchar(10);
return 0;
}
在VS2019下,需将源文件的scanf和fopen做些修改:
//类似于例10.1
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE* fp;
char ch, filename[10];
printf("please input the name of the file:\n");
scanf_s("%s", filename, (unsigned int)sizeof(filename));
fopen_s(&fp, filename, "w");
if (fp == NULL)
{
printf("can't open file!\n");
exit(0);
}
ch = getchar();
printf("please a string:\n");
ch = getchar();
if (ch >= 'a' && ch <= 'z')
{
ch = ch - 32;
}
while (ch != '!')
{
fputc(ch, fp);
putchar(ch);
ch = getchar();
if ('a' <= ch && ch <= 'z')
{
ch = ch - 32;
}
}
fclose(fp);
putchar(10);
return 0;
}