#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"
。
我该怎么做才能让程序用户可以输入..
最佳答案
如果我理解你的问题。
fgets(name,20,stdin);
fopen_s(&des,name,"wb");
您的 fopen_s
将失败,因为 fgets
将换行符添加到 name
。
因此您需要从 name
中删除换行字符。
例子:
size_t len = strlen(name);
if (len > 0 && name[len - 1] == '\n')
name[len - 1] = '\0';
fopen_s(&des,name,"wb");
关于c - 如何将 char 数组传递给 fopen_s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53712768/