【发布时间】:2018-12-11 04:15:58
【问题描述】:
#include <stdio.h>
int main(void)
{
int i;
char name[20];
FILE * src;
FILE * des;
fgets(name,20,stdin);
fopen_s(&src,"배경사진.jpg", "rb");
fopen_s(&des,name,"wb");
char buf[20];
int readcnt;
if (src == NULL || des == NULL) {
puts("파일 오픈 실패!");
return -1;
}
while (1)
{
readcnt = fread((void*)buf, 1, sizeof(buf), src);
if (readcnt < sizeof(buf))
{
if (feof(src) != 0)
{
fwrite((void*)buf, 1, readcnt, des);
puts("파일복사 완료");
}
else
puts("파일복사 실패");
break;
}
我想在 cmd 中获取(要复制的新文件名)。
一般使用fopen_s(&des,"~.jpg", "wb");。
但我使用 char 数组而不是 "~.jpg"。
如何让程序用户可以放..
【问题讨论】:
-
旁白:你确定你对
feof的感觉是正确的吗?如果读取操作尝试读取文件末尾之后,它会返回一个非零值,但您将其视为成功。在循环中使用fread的常用方法是通过读取的项目数来控制循环。比如while ((readcnt = fread(buf, 1, sizeof(buf), src)) != 0) {...}