题干
编写一程序P796.C实现以下功能
在磁盘上新建一个文件Test.txt,将从键盘读入的多个字符存储到该文件中,要求如下:
(1)若输入的字符中有小写字母,则应先将其转换为大写后再存入。
(2)输入!表示输入结束且!不存入文件中。
(3)当文件创建失败或向文件写入字符时出错,应显示指定的出错信息并终止程序的执行。
(4)程序的返回值(即由main函数return的值和程序使用exit终止运行时返回的值,也称退出代码)规定为:
①运行正常返回0 ②文件创建失败返回1 ③向文件写入字符时出错返回2
编程可用素材:printf("\nCreate file error!\n")、printf("Input chars: ")、printf("\nWriting file error!\n")。
程序的运行效果应类似地如图1所示,文件Test.txt的内容应类似地如图2所示。图1中的“Input chars: ”后面的内容系从键盘输入。
程序
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char ch;
// 打开文件,用于写,没有则创建文件
fp = fopen("Test.txt", "w");
if (NULL == fp)
{
printf("\nCreate file error!\n");
exit(1);
}
printf("Input chars: ");
// 写文件数据
while (1)
{
ch = getchar();
// 输入!结束输入
if ('!' == ch)
{
break;
}
// 小写转为大写
if (ch >= 'a' && ch <= 'z')
{
ch -= 'a' - 'A'; // ch = ch - 32;
}
// 判断写文件状态
if ((fputc(ch, fp)) == EOF) // 注意,写入出错,才退出
{
printf("\nWriting file error!\n");
fclose(fp);
exit(2);
}
}
// 关文件
fclose(fp);
fp = NULL;
return 0;
}
知识点
- 写文件,创建文件
- 从键盘读入,写入到文件中,使用fputc一个字符一个字符写入
- 程序出错后的退出状态码:使用exit()库函数返回给操作系统,定义不同的出错码返回