已经在D盘建立了两个记事本,但是还是跑不出来。每次都是显示找不到文件,然后他们无路径的把记事本建在桌面上正常输出。我模仿一下,不太行。
你写的路径是d盘text文件夹里面,不是d盘根目录呀
文件放哪要根据代码来,或者代码根据文件路径改,要一致
问题解答:
根据参考资料中提到的,文件在程序中是以流的形式来操作的,所以我们需要使用文件流来打开文件。具体操作步骤如下:
引入需要的头文件:stdio.h
声明文件流指针fp和需要读写的文件名file_name
使用fopen()函数打开文件,fp = fopen(file_name, "w/r/b+")。其中第二个参数表示打开方式,w/w+表示写入方式,r/r+表示读取方式,b表示二进制文件,+表示可读写。
使用fgetc()函数读取一个字符,fputc()函数写入一个字符,fgets()函数读取一行字符,fwrite()函数二进制写入,fread()函数二进制读取,均需要在操作完毕后使用fclose()函数关闭文件流。
代码示例:
#include <stdio.h>
int main()
{
FILE *src_fp, *dst_fp; // 声明源文件流指针和目标文件流指针
char src_file_name[] = "C:\\Users\\Desktop\\note1.txt";
char dst_file_name[] = "C:\\Users\\Desktop\\note2.txt";
char ch;
// 打开源文件和目标文件
src_fp = fopen(src_file_name, "r");
if (src_fp == NULL) {
printf("Failed to open file %s\n", src_file_name);
return 0;
}
dst_fp = fopen(dst_file_name, "w");
if (dst_fp == NULL) {
printf("Failed to open file %s\n", dst_file_name);
return 0;
}
// 读取源文件的每个字符并写入目标文件
while ((ch = fgetc(src_fp)) != EOF) {
fputc(ch, dst_fp);
}
// 关闭文件流
fclose(src_fp);
fclose(dst_fp);
printf("Copy finished.\n");
return 0;
}
其中,"C:\Users\Desktop\"需要替换为你本地桌面的路径,"note1.txt"和"note2.txt"需要替换为你需要复制的文件的文件名,并保证这两个文件在桌面上存在。