给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行!!! 铁铁们,成功的路上必然是孤独且艰难的,但是我们不可以放弃,远山就在前方,但我们能力仍然不足,所有我们更要奋进前行!!! 今天我们更新了文件操作内容, 🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝
使用所学文件操作,在当前目录下放一个文件data.txt,写一个程序,将data.txt文件拷贝一份,生成data_copy.txt文件。
基本思路:
#include <stdio.h>
int main() {
FILE* sourceFile, * targetFile;
char ch;
// 打开源文件data.txt以供读取
sourceFile = fopen("data.txt", "r");
if (sourceFile == NULL) {
perror("无法打开源文件");
return 1;
}
// 打开目标文件data_copy.txt以供写入
targetFile = fopen("data_copy.txt", "w");
if (targetFile == NULL) {
perror("无法打开目标文件");
fclose(sourceFile);
return 1;
}
// 从sourceFile中读取字符并写入targetFile中
while ((ch = fgetc(sourceFile)) != EOF) {
fputc(ch, targetFile);
}
// 关闭文件流
fclose(sourceFile);
fclose(targetFile);
printf("文件已成功复制。\n");
return 0;
}#include <stdio.h>
int main() {
FILE* sourceFile, * targetFile;
char ch;
// 打开源文件data.txt以供读取
sourceFile = fopen("data.txt", "r");
if (sourceFile == NULL) {
perror("无法打开源文件");
return 1;
}
// 打开目标文件data_copy.txt以供写入
targetFile = fopen("data_copy.txt", "w");
if (targetFile == NULL) {
perror("无法打开目标文件");
fclose(sourceFile);
return 1;
}
// 从sourceFile中读取字符并写入targetFile中
while ((ch = fgetc(sourceFile)) != EOF) {
fputc(ch, targetFile);
}
// 关闭文件流
fclose(sourceFile);
fclose(targetFile);
printf("文件已成功复制。\n");
return 0;
}
用malloc实现二维数组
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j;
int row = 4,col = 5;
//申请一个 4行 5列的二维数组
int **ar = (int**)malloc(sizeof(int*) * row); //sizeof(int*),不能少*,一个指针的内存大小,每个元素是一个指针。
for (i = 0;i < row;i++)
{
ar[i] = (int*)malloc(sizeof(int) * col);
}
for (i = 0;i < row;i++)
{
for (j = 0;j < col;j++)
{
printf("%p ",&ar[i][j]);
}
printf("\n");
}
for (i = 0;i < row;i++)
free(ar[i]);
free(ar);
return 0;
}#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j;
int row = 4,col = 5;
//申请一个 4行 5列的二维数组
int **ar = (int**)malloc(sizeof(int*) * row); //sizeof(int*),不能少*,一个指针的内存大小,每个元素是一个指针。
for (i = 0;i < row;i++)
{
ar[i] = (int*)malloc(sizeof(int) * col);
}
for (i = 0;i < row;i++)
{
for (j = 0;j < col;j++)
{
printf("%p ",&ar[i][j]);
}
printf("\n");
}
for (i = 0;i < row;i++)
free(ar[i]);
free(ar);
return 0;
}