利用fputc和fgetc函数,建立一个文本文件1.txt,并显示文件中的内容。
时间: 2024-02-26 17:57:21 浏览: 34
好的,以下是代码示例:
```c
#include <stdio.h>
int main() {
// 打开文件,如果文件不存在则创建一个新的
FILE *fp = fopen("1.txt", "w+");
if (fp == NULL) {
printf("无法创建文件\n");
return 1;
}
// 向文件中写入一些内容
fputs("Hello world!\n", fp);
fputs("I love programming.\n", fp);
// 将文件指针移到文件开头
rewind(fp);
// 读取文件内容并输出到控制台
char ch;
while ((ch = fgetc(fp)) != EOF) {
printf("%c", ch);
}
// 关闭文件
fclose(fp);
return 0;
}
```
运行程序后,会在当前目录下创建一个名为`1.txt`的文件,并在控制台输出文件中的内容:
```
Hello world!
I love programming.
```
相关问题
利用fputc和fgetc函数,建立一个文本文件1.txt,并显示文件中的内容
好的,以下是利用fputc和fgetc函数建立文本文件1.txt并显示文件内容的示例代码:
```c
#include <stdio.h>
int main() {
FILE* fp = fopen("1.txt", "w+"); // 创建或打开文件
if (fp == NULL) { // 文件打开失败
printf("Failed to open file.\n");
return 1;
}
// 写入文件内容
fputc('H', fp);
fputc('e', fp);
fputc('l', fp);
fputc('l', fp);
fputc('o', fp);
// 将文件指针移动到文件开头
rewind(fp);
// 读取文件内容并显示
int c;
while ((c = fgetc(fp)) != EOF) {
putchar(c);
}
// 关闭文件
fclose(fp);
return 0;
}
```
运行该程序后,将在当前目录下创建一个名为1.txt的文件,并在控制台输出文件内容:
```
Hello
```
1. 将一个文本文件中的内容按倒序方式输出到新建文本文件,试用C语言编写相应程序。
可以使用C语言中的文件操作函数来实现这个功能,以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1000
int main()
{
char input_file_name[100];
char output_file_name[100];
char line[MAX_LINE_LENGTH];
FILE *input_file, *output_file;
long int file_size, i, j;
printf("请输入要读取的文件名:");
scanf("%s", input_file_name);
input_file = fopen(input_file_name, "r");
if (input_file == NULL)
{
printf("无法打开输入文件!\n");
exit(1);
}
printf("请输入要保存的文件名:");
scanf("%s", output_file_name);
output_file = fopen(output_file_name, "w");
if (output_file == NULL)
{
printf("无法创建输出文件!\n");
exit(1);
}
fseek(input_file, 0L, SEEK_END);
file_size = ftell(input_file);
fseek(input_file, 0L, SEEK_SET);
for (i = file_size - 1; i >= 0; i--)
{
fseek(input_file, i, SEEK_SET);
if (fgetc(input_file) == '\n')
{
for (j = i + 1; j < file_size; j++)
{
fseek(input_file, j, SEEK_SET);
if (fgetc(input_file) != EOF)
fputc(fgetc(input_file), output_file);
}
fputc('\n', output_file);
file_size = i;
}
}
for (i = 0; i < file_size; i++)
{
fseek(input_file, i, SEEK_SET);
if (fgetc(input_file) != EOF)
fputc(fgetc(input_file), output_file);
}
fclose(input_file);
fclose(output_file);
printf("文件倒序输出成功!\n");
return 0;
}
```
在这个示例代码中,我们首先从用户输入中获取输入文件名和输出文件名。然后,我们打开输入文件和输出文件,并分别用指针变量 input_file 和 output_file 指向它们。
接下来,我们使用 fseek 函数将文件指针移动到文件末尾,再使用 ftell 函数获取文件大小。然后,我们将文件指针移动到文件开头,并使用 for 循环逆序遍历文件中的字符。
当我们找到一个换行符时,我们将从该行末尾开始遍历,并将字符写入输出文件中。在写入完整行后,我们将文件大小更新为上一行的起始位置。最后,我们将剩余的字符写入输出文件中。
最后,我们关闭输入文件和输出文件,并输出成功信息。