Linux程序设计。设计一个程序,要求用带缓存的流文件I/O操作,把键盘上输入的字符串写入文件“/tmp/5-14tmp”。如果该文件不存在,则创建此文件,多次运行程序多次输入字符串后,文件“/tmp/5-14tmp”中只保存最后一次输入的字符串。
时间: 2023-12-10 15:39:10 浏览: 35
下面是一个简单的实现,使用了标准C库的带缓存的流文件I/O操作:
```c
#include <stdio.h>
#include <stdlib.h>
#define FILENAME "/tmp/5-14tmp"
int main() {
char buffer[1024];
FILE *fp = fopen(FILENAME, "w");
if (fp == NULL) {
perror("Failed to open file");
exit(EXIT_FAILURE);
}
// 读入字符串并写入文件
printf("Enter a string: ");
fgets(buffer, sizeof(buffer), stdin);
fprintf(fp, "%s", buffer);
// 关闭文件
fclose(fp);
return 0;
}
```
该程序会在/tmp目录下创建名为5-14tmp的文件,并向其中写入从键盘输入的字符串。如果该文件已经存在,则会被覆盖。如果要保留之前的内容,可以使用追加模式打开文件:
```c
FILE *fp = fopen(FILENAME, "a");
```
这样每次写入时就会把新的字符串追加到文件末尾。如果要只保存最后一次输入的字符串,可以使用截断模式打开文件:
```c
FILE *fp = fopen(FILENAME, "w");
```
这样每次写入时都会清空文件内容,只保留最后一次输入的字符串。