C 获取行中的每个字符,然后对其进行加密
为什么它不将函数C 获取行中的每个字符,然后对其进行加密,c,encryption,C,Encryption,为什么它不将函数copy()中的每一行从a文件正确复制到b文件 问题出在encr()方法中 #include <stdio.h> #include <stdlib.h> #include <string.h> int copy(FILE *afile, FILE *bfile){ char line[100]; while(fgets(line, 100, line) != NULL){ fprintf(bfile, "%
copy()
中的每一行从a文件
正确复制到b文件
问题出在encr()
方法中
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int copy(FILE *afile, FILE *bfile){
char line[100];
while(fgets(line, 100, line) != NULL){
fprintf(bfile, "%s\n", line);
}
return 1;
}
int main(int argc, char *argv[])
{
FILE *afile;
FILE *bfile;
input = fopen(argv[1], "r");
output = fopen(argv[2], "w");
copy(input, output);
fclose(output);
}
return 0;
}
#包括
#包括
#包括
int复制(文件*afile,文件*bfile){
字符行[100];
while(fgets(行,100,行)!=NULL){
fprintf(b文件,“%s\n”,行);
}
返回1;
}
int main(int argc,char*argv[])
{
文件*afile;
文件*b文件;
输入=fopen(argv[1],“r”);
输出=fopen(argv[2],“w”);
复制(输入、输出);
fclose(输出);
}
返回0;
}
您需要解析for循环中的行,类似于:
while(fgets(line, sizeof(line), input) != NULL){
for (index = 0; line[index] != 0; index++) {
p = line[index];
...
...
fputc(c, output);
//index++; remove this line
}
}
你需要像as
那样的循环(index=0;(p=line[index])!='\0';index++){…}
@BLUEPIXY,它在Windows中加密,但是你知道为什么它在Linux中加密成一堆奇怪的字符吗?结果不一样?我不知道。@BLUEPIXY,是的,它在Windows上给出了正确的输出,但在Unix上它是一堆字符:(如果我用“\0”而不是0怎么办?有什么区别@Ritesh@Kemal当你说“A”时,它实际上是65。当你说“\0”时,它实际上是0。