文件操作
用fgetc读取文件中字符时,终止条件应该是
while((c = fgetc(in) != EOF){
....
}
//而不是
while((c = fgetc(in) != '\0'){
...
}
//或者
while((c = fgetc(in) != '\n'){
...
}
例如.文件复制
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int c;
FILE *in, *out;
char filename[32], str[81], line[BUFSIZ];
gets(filename);
gets(str);
if((in = fopen(filename, "r")) == NULL) {
printf("Error\n");
return 1;
}
out = fopen("output.txt", "w");
while(fgets(line, 1000, in) != NULL) {
if(strstr(line, str) != NULL) {
printf("%s", line);
fputs(line, out);
}
}
// printf("%d", BUFSIZ);
fclose(in);
fclose(out);
return 0;
}