c语言从键盘输入一串字符,存入文件,直到用户输入一个“!”作为终止标志
基于new bing 的调写:
#include <stdio.h>
int main() {
FILE *fp;
char ch;
fp = fopen("output.txt", "w");
if (fp == NULL) {
printf("Error: failed to open file!");
return -1;
}
printf("Please input some characters:\n");
while ((ch = getchar()) != '!') {
fputc(ch, fp);
}
fclose(fp);
printf("Input finished.");
return 0;
}
代码思路解析:
首先定义一个 FILE* 类型的指针变量 fp,用于表示文件指针;
调用标准库函数 fopen,以写入模式打开名为 output.txt 的文件,如果文件打开失败,输出错误信息,程序退出;
再在终端提示用户输入一些字符;
使用 while 循环读入用户输入的每个字符 ch,当读入字符为 '!' 时结束循环;
把每个读入的字符 ch 写入到文件中,即调用标准库函数 fputc 将字符 ch 写入文件 fp 中;
写入完成后,关闭文件指针,即调用标准库函数 fclose(fp);
最后输出一条提示信息。
以下是使用C语言编写的从键盘输入一串字符,存入文件,直到用户输入一个“!”作为终止标志的代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 1000 // 最大长度
int main() {
char str[MAX_LEN]; // 输入字符串的缓冲区
FILE *fp; // 文件指针
char filename[100]; // 文件名
char ch; // 输入字符
printf("请输入要保存到的文件名: ");
scanf("%s", filename);
fp = fopen(filename, "w");
if(fp == NULL) {
printf("无法创建文件 '%s'\n", filename);
exit(EXIT_FAILURE);
}
printf("请输入一段字符串,以'!'作为终止标志:\n");
while((ch = getchar()) != '!') { // 循环读入字符串
fputc(ch, fp); // 将字符写入文件
}
fclose(fp);
printf("文件保存成功\n");
return 0;
}
解释:
代码定义了一个长度为 MAX_LEN 的字符数组 str 作为输入字符串的缓冲区。定义了文件指针 fp,以及一个字符数组 filename 用于保存文件名。
使用 scanf() 函数输入文件名,并使用 fopen() 函数打开文件。如果文件无法创建,则输出错误信息并退出程序。
使用 getchar() 函数循环读入字符,直到读入字符 '!'。在迭代过程中,将字符逐一写入文件中。
使用 fclose() 函数关闭文件,输出文件保存成功的提示信息。
最后,主函数返回 0 表示程序正常结束。
#include <stdio.h>
int main() {
char c;
FILE *fp;
// 打开文件
fp = fopen("a.txt", "w");
if (fp == NULL) {
printf("文件打开失败!");
return 0;
}
printf("输入一串字符(输入!结束):\n");
// 从键盘输入一串字符,存入文件,直到用户输入一个“!”作为终止标志
while ((c = getchar()) != '!') {
fputc(c, fp);
}
fclose(fp);
printf("success\n");
return 0;
}
计算机科学先驱 Alan Perlis 对低级编程语言的定义:
“当一门编程语言的程序要求把注意力放在不相关的内容上时,那它就是低级的编程语言”。
或许这个定义适用于 C 语言,但它并不能准确表达人们对低级语言的认识。人们通过多种属性来判断一门编程语言是否是低级的。我们假设将编程语言视为一个连续的整体,一端是汇编,另一端是星际级的计算机接口。低级语言“接近金属”,而高级语言更接近人类的思维方式。
对于“接近金属”的语言,必须提供一个抽象机,以便轻松映射到目标平台公开的抽象上。人们很容易认为 C 语言是 PDP-11 的低级语言。在 C 语言模型中,程序都是按顺序执行,内存是一个扁平的空间,甚至预增量和后增量运算符都与 PDP-11 寻址模式完全一致。