gpt4 book ai didi

c - 在主程序中正确包含功能

转载 作者:行者123 更新时间:2023-11-30 18:30:58 24 4
gpt4 key购买 nike

昨天我已经问了一个关于同一个程序的问题( copy content of file in reverse order ),但现在我不知道如何在主程序中正确调用第二个函数。

#include<stdio.h>
#include<string.h>

void reverse(char line[])
{
int i;
int length;
char temp;
if (line == NULL)
return;
length = strlen(line);
for (i = 0 ; i < length / 2 + length % 2 ; ++i)
{
if (line[i] == line[length - i - 1])
continue;
temp = line[i];
line[i] = line[length - i - 1];
line[length - i - 1] = temp;
}
return;
}


char copying(char *src_file, char *dst_file) {

fgets(src_file, sizeof(src_file), stdin); reverse(src_file);

if( (src_file = fopen(src_file, "r")) == NULL )
{
printf("ERROR: Source File %s Failed To Open...\n",src_file);
return(-1);
}

fgets(dst_file, sizeof(dst_file), stdin);

if( (dst_file = fopen(dst_file, "w+")) == NULL )
{
fclose(src_file);
printf("ERROR: Destination File %s Failed To Open...\n",dst_file);
return(-2);
}

int ch;
while( (ch = fgetc(src_file)) != EOF )
{
fputc(ch, dst_file);
}

fclose(src_file);
fclose(dst_file);

return dst_file;
}



int main()
{
char src_file[200], dst_file[200];

printf("Enter Source File Name:\n");
fgets(src_file, sizeof(src_file), stdin);

printf("Enter Destination File Name:\n");
fgets(dst_file, sizeof(dst_file), stdin);

*dst_file = copying(src_file, dst_file);

return 0;
}

最佳答案

你的代码非常糟糕,甚至无法编译。以下是一些修复:

  • char copying(char *src_file, char *dst_file) - 您必须指定参数的数据类型。
  • char copying(char *src_file, char *dst_file) { ...} - 不要忘记函数两边的括号
  • 首先必须在 main 中声明变量 src_filedst_file
  • 并且不要在您的复制函数中声明它们,因为它们已经定义为您的参数
  • 您将返回一个 char 指针,而 copying 的函数定义表示它仅返回一个“char”。

现在,如果您的 main 函数中的 src_filedst_file分配 char指针,那么您就正确调用了该函数。

我没有检查你的所有代码,所以可能会有更多错误。尝试运行编译器,看看会出现什么错误。

关于c - 在主程序中正确包含功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27589064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com