1、文件的综合操作
【问题描述】
编写一个程序,要求如下:
(1)从键盘上输入一个随机种子。
(2)利用该随机种子初始化随机函数(srand()),在ASCII码 [65, 122) 的范围中,随机产生100个字符(通过调用函数rand()产生随机数,比如产生0~99的随机数可以使用rand()%100)。
(3)将这100个字符存储到文件data.txt中,并关闭文件。
(4)从文件data.txt中将数据分成大小相等的2份,分别写入到data1.txt和data2.txt。
(5)将data1.txt和data2.txt文件中的所有数据输出。
【输入形式】
随机种子。
【输出形式】
输出文件中的所有字符。
【样例输入】
1
【样例输出】
data1.txt:
jyHuRrVDBLFmZMld`^hVPM[hHNeUvCaJIYnTRWrbak^JDpeQg]
data2.txt:
LyBh_cCtxfEORSDKcsxT^emD`RPewOV[_EDjHXX`PGCfIrm_PL
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,seed,n=0;
char a,b;
scanf("%d",&seed);
srand(seed);
FILE* fp=fopen("data.txt","w");
for (i=0;i<100;i++)
{
a=65+rand()%57;
fprintf(fp,"%c",a);
}
fclose(fp);
FILE* data=fopen("data.txt", "r");
FILE* data1=fopen("data1.txt", "w");
FILE* data2=fopen("data2.txt", "w");
while ((b=fgetc(data))!=EOF)
{
if (n < 50)
{
fputc(b, data1);
}
else
{
fputc(b,data2);
}
n++;
}
fclose(data);
fclose(data1);
fclose(data2);
data1 = fopen("data1.txt", "r");
data2 = fopen("data2.txt", "r");
printf("data1.txt:\n");
while ((b = fgetc(data1)) != EOF)
{
printf("%c", b);
}
fclose(data1);
printf("\n");
printf("data2.txt:\n");
while ((b = fgetc(data2))!=EOF)
{
printf("%c",b);
}
fclose(data2);
return 0;
}
2、文件的读写操作
【问题描述】
编写一个程序,要求如下:
(1)从键盘上任意输入20 个字符。
(2)将这20个字符存储到文件file2.txt中,并关闭文件。
(3)读取文件file2.txt中的所有20个字符,将这20个字符中的英文字母大小写形式互换,即如果字符是小写英文字母,那么就变成大写;如果字符是大写英文字母,那么就变成小写;其他字符不变。将这变换后的20个字符追加到file2.txt中。
(4)将file2.txt文件中的所有数据输出。
【输入形式】
任意输入字符。
【输出形式】
输出文件中的所有字符。
【样例输入】
asderf89iuYhgjGfr98u
【样例输出】
asderf89iuYhgjGfr98uASDERF89IUyhGJgFR98U
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int i;
char a[21],b[20],c[41];
FILE *fp=fopen("file.txt","w+");
fgets(a,21,stdin);
fputs(a,fp);
rewind(fp);
for(i=0;i<20;i++)
{
a[i]=fgetc(fp);
}
fclose(fp);
for(i=0;i<20;i++)
{
b[i]=a[i];
if(b[i]<=90&&b[i]>=65)
{
b[i]+=32;
}
else if(b[i]<=122&&b[i]>=97)
{
b[i]-=32;
}
}
fp=fopen("file.txt","a+");
fputs(b,fp);
rewind(fp);
fgets(c,41,fp);
printf("%s\n",c);
fclose(fp);
return 0;
}
3、文件的建立和读写基本操作
【问题描述】
编写一个程序,要求如下:
(1)从键盘上输入20个字符。
(2)将这20个字符存储到文件file1.txt中。
(3)将文件file1.txt中最后10个字符读取出来,并显示在屏幕上。
【输入形式】
输入20个字符
【输出形式】
将文件中的后10个字符输出
【样例输入】
abcdefghjijk123456zy
【样例输出】
jk123456zy
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char a[21],b[11];
fgets(a,21,stdin);
FILE *fp= fopen("file1.txt", "w");
fputs(a,fp);
fclose(fp);
fp = fopen("file1.txt", "r");
fseek(fp, -10, SEEK_END);
fread(b, 1, 10, fp);
fclose(fp);
for (i = 0; i < 10; i++)
{
printf("%c", b[i]);
}
printf("\n");
return 0;
}
标签:fp,10,20,文件,实验,输入,txt,个字符
From: https://blog.csdn.net/2303_82182099/article/details/144116687