我必须编写一个c程序,它从两个不同的文件中复制用户名和密码,并在第三个文件上匹配它们。我真的不知道如何解决这个问题。 username.txt和password.txt中共有20个元素。我知道我可以使用fread和fwrite一次从文本文件中读取信息块。我试过运行程序,但它给我错误无法打开文件。我该如何解决这个问题?
#include <stdio.h>
#include <stdlib.h>
#define BUFF_SIZE 1000
int main()
{
FILE *usernames, *passwords, *merged_file;
char a, c;
passwords = fopen("/Users/mcicco/Desktop/passwords.txt", "r");
usernames = fopen("/Users/mcicco/Desktop/usernames.txt ", "r");
merged_file = fopen("/Users/mcicco/Desktop/merged.txt" , "w");
if (usernames == NULL || passwords ==NULL)
{
printf("Cannot open file \n");
return (-1);
}
c = fgetc(usernames);
a = fgetc(passwords);
while (c != EOF && a!= EOF)
{
fputc(c, merged_file);
c = fgetc(usernames);
fputc(a, merged_file);
a=fgetc(passwords);
}
fclose(usernames);
fclose(passwords);
fclose(merged_file);
return 0;
}
答案 0 :(得分:0)
一次读取一个字符的文件太慢了。只需一次读一行,一次写一行或两行:
all: test1.o test2.o
.PHONY: all
答案 1 :(得分:0)
以下提议的代码:
fgets()
快速阅读两个输入文件的每一行strchr()
查找输入缓冲区中的任何换行符fopen()
fopen()
的任何调用失败,#define BUFF_SIZE
for
if
else
while
do...while
switch
case
{来鼓励提高易读性和理解力{1}}通过一个空行default
现在,建议的代码。
username password