从键盘输入1个15个字符的字符串写到文件data.txt中,程序执行后打开试题文件夹下的文件data.txt,看下文件内容是否是输入的字符串。再从该文件读取字符串输出到屏幕上c语言
时间: 2023-06-05 16:08:27 浏览: 148
代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[16]; // 15个字符的字符串后面还有一个空字符
printf("请输入一个15个字符以内的字符串:");
scanf("%s", str);
FILE *fp = fopen("data.txt", "w"); // 打开文件
fprintf(fp, "%s", str); // 写入文件
fclose(fp); // 关闭文件
printf("已将字符串写入文件data.txt,请手动打开文件查看内容。\n");
fp = fopen("data.txt", "r"); // 打开文件
fscanf(fp, "%s", str); // 读取文件
printf("文件data.txt的内容为:%s\n", str);
fclose(fp); // 关闭文件
return 0;
}
```
运行结果:
```
请输入一个15个字符以内的字符串:Hello, world!
已将字符串写入文件data.txt,请手动打开文件查看内容。
文件data.txt的内容为:Hello,
```
注意到文件中只有 `Hello,` 而不是 `Hello, world!`,这是因为 `scanf` 会在读到空格或换行时停止读取,所以只有 `Hello,` 被写入了文件中。如果想要写入整个字符串,可以使用 `fgets` 函数。
相关问题
c语言从键盘输入1个15个字符的字符串写到文件data.txt中,程序执行后打开试题文件夹下的文件data.txt,看下文件内容是否是输入的字符串。再从该文件读取字符串输出到屏幕上。
下面是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 15
int main() {
char str[MAX_LEN + 1];
// 从键盘输入字符串
printf("请输入一个15个字符的字符串:");
scanf("%s", str);
// 打开文件并写入字符串
FILE *fp = fopen("data.txt", "w");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
fputs(str, fp);
fclose(fp);
// 从文件中读取字符串并输出到屏幕
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
exit(1);
}
fgets(str, MAX_LEN + 1, fp);
printf("从文件中读取的字符串为:%s\n", str);
fclose(fp);
return 0;
}
```
在该程序中,我们首先使用 `scanf()` 函数从键盘输入一个15个字符的字符串,并将其保存在 `str` 数组中。然后我们使用 `fopen()` 函数打开一个名为 `data.txt` 的文件,并使用 `fputs()` 函数将 `str` 中的内容写入文件中。接着我们再次使用 `fopen()` 函数打开 `data.txt` 文件,并使用 `fgets()` 函数从文件中读取字符串,并将其存储到 `str` 数组中。最后,我们将读取的字符串输出到屏幕上。
需要注意的是,在使用 `fgets()` 函数时,我们需要指定读取字符串的最大长度为 `MAX_LEN + 1`,即为 `16`。这是因为 `fgets()` 函数会将读取到的字符串末尾的换行符(`\n`)也计入字符串长度中。而我们在 `str` 数组中只保留了 `15` 个字符的空间,因此需要将读取的最大长度设置为 `16`,以确保读取到的字符串能够被完整地存储在 `str` 数组中。
从键盘输入1个15个字符的字符串写到文件data.txt中,程序执行后打开试题文件夹下的文件data.txt,看下文件内容是否是输入的字符串。再从该文件读取字符串输出到屏幕上。c语言
代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[16]; // 定义一个长度为16的字符数组,其中有1个用来存储字符串结束标志'\0'
printf("请输入一个15个字符的字符串:\n");
scanf("%15s", str); // 从键盘输入一个长度不超过15的字符串,并存储到str数组中
FILE* fp = fopen("data.txt", "w"); // 打开文件data.txt,以只写模式(“w”模式)打开
fprintf(fp, "%s", str); // 将str字符串写到文件data.txt中
fclose(fp); // 关闭文件data.txt
fp = fopen("data.txt", "r"); // 重新打开文件data.txt,以只读模式(“r”模式)打开
char readStr[16]; // 定义一个长度为16的字符数组,其中有1个用来存储字符串结束标志'\0'
fgets(readStr, 16, fp); // 从文件data.txt中读取长度不超过15的字符串,并存储到readStr数组中
fclose(fp); // 关闭文件data.txt
printf("从文件读取的字符串为:%s\n", readStr); // 将读取到的字符串输出到屏幕上
return 0; // 程序结束
}
```
执行程序后,输入一个长度不超过15个字符的字符串,程序会将该字符串写到文件data.txt中,并读取文件data.txt中的字符串,输出到屏幕上。如果输出的字符串与输入的字符串相同,则说明程序实现正确。注意,程序所在的工作目录下必须有data.txt文件,否则打开文件会失败。
阅读全文