我正在尝试编写一个程序来将我在命令行上指定的字符(命令行参数)与输入文本文件中的字符交换。第一个命令行参数是我要更改的字符,第二个参数是我要替换旧字符的字符,第三个参数是输入文件。
当我这样做时,我的程序应该生成一个名为:“translation.txt”的输出文件。我知道我的程序的问题在于“if”语句/fprintf 语句,但我不确定如何解决这个问题。我正在考虑分别读取输入文件中的每个字符,然后从那里,我想使用“if”语句来确定是否替换字符。
void replace_character(int arg_list, char *arguments[])
{
FILE *input, *output;
input = fopen(arguments[3], "r");
output = fopen("translation.txt", "w");
if (input == NULL)
{
perror("Error: file cannot be opened\n");
}
for (int i = 0; i != EOF; i++)
{
if (input[i] == arguments[1])
{
fprintf(output, "%c\n", arguments[2]);
}
else
{
fprintf(output, "%c\n", arguments[1]);
}
}
}
int main(int argc, char *argv[])
{
if (argc < 5)
{
perror("Error!\n");
}
replace_character(argc, argv);
}