2.从键盘输入一串字符,存入文件,直到用户输入一个“!”作为终止标志

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;
}

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7795267
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:输入一个字符串,判断它是否为回文
  • 除此之外, 这篇博客: C语言既有高级语言又有低级语言的特点,但为什么它不是低级语言呢?中的 什么是低级编程语言? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 计算机科学先驱 Alan Perlis 对低级编程语言的定义:

    “当一门编程语言的程序要求把注意力放在不相关的内容上时,那它就是低级的编程语言”。

    或许这个定义适用于 C 语言,但它并不能准确表达人们对低级语言的认识。人们通过多种属性来判断一门编程语言是否是低级的。我们假设将编程语言视为一个连续的整体,一端是汇编,另一端是星际级的计算机接口。低级语言“接近金属”,而高级语言更接近人类的思维方式。

    对于“接近金属”的语言,必须提供一个抽象机,以便轻松映射到目标平台公开的抽象上。人们很容易认为 C 语言是 PDP-11 的低级语言。在 C 语言模型中,程序都是按顺序执行,内存是一个扁平的空间,甚至预增量和后增量运算符都与 PDP-11 寻址模式完全一致。

     

  • 您还可以看一下 乌云毕力格老师的网络工程师初级教程课程中的 路由器配置文件备份小节, 巩固相关知识点