fgets的几种退出方式

请看下面的程序:

   1:  #include <stdio.h>
   2:  #include <string.h>
   3:   
   4:  int main(void)
   5:  {
   6:      char buffer[128];
   7:   
   8:      while((fgets(buffer, 128, stdin) != NULL) && (buffer[0] != '\n'))
   9:      {
  10:          if(strncmp(buffer, "quit", 4) == 0)
  11:          {
  12:              break;
  13:          }
  14:          fputs(buffer, stdout);     
  15:      }
  16:      return 0;
  17:  }

 

上面的程序完成的功能是:

当只输入回车或者输入quit或者按下ctrl d程序自动退出。

其中ctrl d 表示从终端输入结束,即stdin输入结束。

好的,以下是以 C 语言为例的示例代码: 文件打开操作: ```c #include <stdio.h> int main() { // 以写模式打开文件 FILE *fp = fopen("example.txt", "w+"); if (fp == NULL) { printf("Failed to open file.\n"); return -1; } // 写入数据 fputs("Hello, world!", fp); // 关闭文件 fclose(fp); return 0; } ``` 在上述代码中,我们使用了 `fopen` 函数以写模式打开了一个名为 `example.txt` 的文件。如果打开失败,我们就输出一条错误信息并退出程序。接着,我们使用 `fputs` 函数向文件中写入了一行字符串。最后,我们使用 `fclose` 函数关闭了文件。 除了写模式外,还有以下几种模式: - 只模式:使用 `"r"` 标志打开文件,只能取文件内容,不能写入或修改。例如:`fopen("example.txt", "r")`。 - 只写模式:使用 `"w"` 标志打开文件,只能写入文件内容,不能取或修改。如果文件不存在,则会创建一个新文件;如果文件已存在,则会清空文件内容。例如:`fopen("example.txt", "w")`。 - 追加模式:使用 `"a"` 标志打开文件,可以在文件末尾追加新内容,不能取或修改文件内容。如果文件不存在,则会创建一个新文件。例如:`fopen("example.txt", "a")`。 - 二进制模式:使用 `"b"` 标志打开文件,以二进制方式写文件内容。例如:`fopen("example.txt", "wb")`。 文件关闭操作: ```c #include <stdio.h> int main() { FILE *fp = fopen("example.txt", "r"); if (fp == NULL) { printf("Failed to open file.\n"); return -1; } // 数据 char buffer[1024]; fgets(buffer, 1024, fp); printf("%s\n", buffer); // 关闭文件 fclose(fp); return 0; } ``` 在上述代码中,我们使用了 `fopen` 函数以只模式打开了一个名为 `example.txt` 的文件。如果打开失败,我们就输出一条错误信息并退出程序。接着,我们使用 `fgets` 函数从文件中取了一行字符串,并输出到控制台上。最后,我们使用 `fclose` 函数关闭了文件。 在实际开发中,我们通常会使用 `fopen` 函数打开文件,并使用 `fprintf`、`fscanf`、`fwrite`、`fread` 等函数写文件内容。最后,一定要记得使用 `fclose` 函数关闭文件,以释放资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值