从键盘输入若干字符,每行不超过100个字符,以单独一个!表示结束,将每行开头为大写字母的行内容存入d盘根目录下的文本文件1.txt中,用fputs函数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char line[101]; // 用于存储每行输入的字符
FILE *fp; // 文件指针
fp = fopen("D:\\1.txt", "w"); // 以写入模式打开文件
if (fp == NULL) { // 文件打开失败
printf("Failed to open file!\n");
exit(1); // 异常退出程序
}
while (1) { // 循环读入每行字符
fgets(line, 100, stdin); // 从键盘读入每行字符,最多读入100个字符
if (*line == '!') { // 输入'!'表示结束
break;
}
if (*line >= 'A' && *line <= 'Z') { // 如果开头为大写字母
fputs(line, fp); // 将该行字符写入文件
}
}
fclose(fp); // 关闭文件
return 0;
}
```
不知道你这个问题是否已经解决, 如果还没有解决的话:#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main() {
char input[101]; // 声明一个长度为101的字符数组,用于存储输入的行
FILE *fp; // 声明一个指向文件的指针
fp = fopen("1.txt", "w"); // 以写入模式打开文件
if(fp == NULL) { // 如果文件打开失败
printf("Error opening file!\n"); // 输出错误信息
return 1; // 返回1,结束程序
}
while(1) { // 无限循环
printf("Enter a line (ends with !): "); // 提示用户输入
fgets(input, sizeof(input), stdin); // 从标准输入获取输入行
if(input[0] == '!') { // 如果输入行以!开头
break; // 跳出循环
}
if(isupper(input[0])) { // 如果输入行第一个字符是大写字母
fputs(input, fp); // 将输入行写入文件
}
}
fclose(fp); // 关闭文件
return 0; // 返回0,结束程序
}
提示: - 使用fgets获取输入行,sizeof(input)是为了避免输入行超出数组范围 - 使用isupper判断输入行第一个字符是否为大写字母 - 使用fputs将输入行写入文件中 - 使用!作为输入行的结束标志,并在循环中判断是否输入了结束标志