运用C语言将book[]写到book.txt文件中
时间: 2023-11-28 18:48:17 浏览: 128
可以使用C语言中的文件操作函数将book数组中的内容写入到book.txt文件中。具体实现代码如下:
```c
#include <stdio.h>
int main() {
char book[] = "The quick brown fox jumps over the lazy dog.";
FILE *fp;
fp = fopen("book.txt", "w"); // 打开文件,以写入模式打开
if (fp == NULL) { // 判断是否成功打开文件
printf("Failed to open file.\n");
return 1;
}
fprintf(fp, "%s", book); // 将book数组中的内容写入到文件中
fclose(fp); // 关闭文件
return 0;
}
```
运行程序后,就会在当前目录下生成一个名为book.txt的文件,其中包含了book数组中的内容。
相关问题
请用c语言编程实现将book txt逐行读出屏幕
要使用C语言编写一个程序,逐行读取并显示一个名为"book.txt"的文本文件内容,你可以按照以下步骤进行:
1. 包含必要的头文件。
2. 打开文件用于读取。
3. 读取文件中的每一行,并将其显示在屏幕上。
4. 关闭文件。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file;
char line[256]; // 假设每行文本不超过255个字符
// 打开文件
file = fopen("book.txt", "r");
if (file == NULL) {
perror("无法打开文件");
return -1;
}
// 逐行读取并显示
while (fgets(line, sizeof(line), file) != NULL) {
printf("%s", line);
}
// 关闭文件
fclose(file);
return 0;
}
```
这段代码首先尝试打开名为"book.txt"的文件进行读取。如果文件成功打开,它将使用`fgets`函数逐行读取文件内容,每次读取的行被存储在`line`数组中,并通过`printf`函数输出到屏幕上。当到达文件末尾时,`fgets`会返回NULL,这时程序将关闭文件并退出。
注意,这个例子假设文件的每一行都不会超过255个字符,包括换行符。如果文本文件的行很长,你可能需要使用更大的缓冲区,或者改变读取方式。
图书信息包括:书名、出版社、价格,从book.txt文件中读取5条图书信息,将其按照价格从低到高排序后,输出全部图C语言书信息至bookpaixu.txt中,并在屏幕显示案例示范
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 5
#define MAX_NAME_LEN 50
#define MAX_PUBLISHER_LEN 50
typedef struct {
char name[MAX_NAME_LEN];
char publisher[MAX_PUBLISHER_LEN];
float price;
} Book;
int compare_books(const void* a, const void* b) {
return ((Book*)a)->price - ((Book*)b)->price;
}
int main() {
// 读取图书信息
Book books[MAX_BOOKS];
FILE* fp = fopen("book.txt", "r");
if (fp == NULL) {
printf("Failed to open file!\n");
return 1;
}
for (int i = 0; i < MAX_BOOKS; i++) {
fscanf(fp, "%s %s %f", books[i].name, books[i].publisher, &books[i].price);
}
fclose(fp);
// 按价格排序
qsort(books, MAX_BOOKS, sizeof(Book), compare_books);
// 输出到文件和屏幕
fp = fopen("bookpaixu.txt", "w");
if (fp == NULL) {
printf("Failed to open file!\n");
return 1;
}
for (int i = 0; i < MAX_BOOKS; i++) {
fprintf(fp, "%s %s %.2f\n", books[i].name, books[i].publisher, books[i].price);
printf("%s %s %.2f\n", books[i].name, books[i].publisher, books[i].price);
}
fclose(fp);
return 0;
}
```
假设book.txt文件的内容如下:
```
C Primer Plus Pearson 68.0
C语言程序设计 高等教育出版社 32.0
C++ Primer Pearson 98.0
深入理解计算机系统 人民邮电出版社 88.0
算法 第4版 人民邮电出版社 78.0
```
那么程序的输出结果为:
```
C语言程序设计 高等教育出版社 32.00
C Primer Plus Pearson 68.00
算法 第4版 人民邮电出版社 78.00
深入理解计算机系统 人民邮电出版社 88.00
C++ Primer Pearson 98.00
```
并且bookpaixu.txt文件的内容也与此相同。
阅读全文