文件的写入与读取
先统计用户通过键盘输入的每行字符中字符的个数,并将其写入文件,然后将字符按文本文件方式存入文件中。最后从文件中读出每行字符并显示在屏幕上。文件可以存放在工程文件下,和main.c相同文件夹,文件名为test01.txt。
input
输入数据有多组:每组有多行,第一行为整数n,n>=0,表示接下来输入的字符行数,n=0时输入结束;接下来为用户从键盘输入的n行字符,注意每行字符中包含空格字符,每行字符不超过300个。
output
将用户输入的n行字符存入文件中,然后从文件中读出这n行字符并显示在屏幕上。
注意,本题目不需要提交代码,运行结果正确即可。将代码截图、运行界面和test01.txt文件内容截图上传即可。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 300
#define FILENAME "test01.txt"
int main()
{
int n, i, len;
char line[MAX_LINE_LENGTH + 1];
FILE *fp= fopen(FILENAME, "w");
if (fp == NULL)
{
printf("file open error!");
exit(1);
}
else
printf("file open success!\n");
scanf("%d", &n);
while (n > 0)
{
getchar();
fgets(line, MAX_LINE_LENGTH + 1, stdin);
len = strlen(line) - 1;
fprintf(fp, "%d\n", len);
fprintf(fp, "%s", line);
n--;
}
fclose(fp);
fp = fopen(FILENAME, "r");
if (fp == NULL) {
printf("file open error!");
exit(1);
}
while (fgets(line, MAX_LINE_LENGTH + 1, fp) != NULL)
{
len = atoi(line);
fgets(line, MAX_LINE_LENGTH + 1, fp);
printf("%s", line);
}
fclose(fp);
return 0;
}
FILE *fp= fopen(FILENAME, "w");
w是写入,r是读取